DTrace broken on 9.0-Release?
George Neville-Neil
gnn at neville-neil.com
Thu Jun 14 16:01:08 UTC 2012
Top post.
File a PR and assign it to me (gnn) please.
I'm on vacation until Sunday but I am actively working on DTrace when I'm not
on vacation.
Best,
Geo
On Jun 14, 2012, at 02:53 , Fabian Keil wrote:
> Ryan Goodfellow <rgoodfel at eecs.wsu.edu> wrote:
>
>> 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.
>
> Doesn't work for me either on 10-CURRENT amd64.
> Converting it to C doesn't make a difference, it works if
> one changes the loop to "for (;;)", though.
>
>> 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.
>
> In my opinion the problem with DTrace on FreeBSD is that while it's
> known to be incomplete, there doesn't seem to be documentation
> available about which parts are supposed to work already and which
> aren't.
>
> For example the trivial example program at:
> http://wiki.freebsd.org/DTrace/userland (which works for me) doesn't
> actually use a counting loop, so maybe dtracing your example program
> isn't supposed to work yet and never did on FreeBSD.
>
> Without documentation it's hard to tell.
>
> Fabian
More information about the freebsd-current
mailing list