Re: DTrace broken on 9.0-Release?

From: George Neville-Neil <gnn_at_neville-neil.com>
Date: Thu, 14 Jun 2012 09:00:45 -0700
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
Received on Thu Jun 14 2012 - 14:01:07 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:28 UTC