DTrace broken on 9.0-Release?
Ryan Goodfellow
rgoodfel at eecs.wsu.edu
Thu Jun 14 04:33:09 UTC 2012
Hi FreeBSD community,
Today I downloaded and installed FreeBSD 9.0-RELEASE and followed the directions from <http://wiki.freebsd.org/DTrace> to get DTrace up and running. The output of DTrace instrumenting a simple program, however, is not correct. The program is as follows:
// test.cc
#include<cstdlib>
int main(void) {
for(int i = 0; i < 5; i++) {
malloc(47);
}
}
then compiling and running DTrace as follows:
g++ test.cc -o test
dtrace -n 'pid$target::malloc:entry{ }' -c ./test
The correct output for this example is something to the tune of:
dtrace: description 'pid$target::malloc:entry' matched 2 probes
dtrace: pid 95236 has exited
CPU ID FUNCTION:NAME
0 188748 malloc:entry
0 188748 malloc:entry
0 188748 malloc:entry
0 188748 malloc:entry
0 188748 malloc:entry
(this from a machine with the same code running DTrace)
The DTrace session should also make an immediate exit on completion. On FreeBSD I have the following
CPU ID FUNCTION:NAME
2 42213 malloc:entry
and the execution does either not exit on it's own or hangs, it requires a ctrl-c.
I followed the instructions from the FreeBSD site exactly, compiling and installing the custom kernel. I used both clang++ and g++ for compilation with the same result. The system has even completely hung on other attempts.
Is DTrace not something that should be relied upon in FreeBSD? I have also tried this on the latest 10-CURRENT build with the same result.
Thanks
Ryan G
More information about the freebsd-current
mailing list