DTrace broken on 9.0-Release?
Ryan Goodfellow
rgoodfel at eecs.wsu.edu
Thu Jun 14 19:53:15 UTC 2012
Hi everyone, and thank you for the very prompt responses.
I did indeed compile world with CFLAGS+=-fno-omit-frame-poiner in my make.conf. I will file the PR shortly.
Thank You
Ryan G
On Jun 14, 2012, at 9:00 AM, George Neville-Neil <gnn at neville-neil.com> wrote:
> 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