Date: Thu, 14 Jun 2012 12:53:07 -0700 From: Ryan Goodfellow <rgoodfel@eecs.wsu.edu> To: freebsd-current@freebsd.org Subject: Re: DTrace broken on 9.0-Release? Message-ID: <EF688929-B1ED-487F-94CF-F84806FDDC9E@eecs.wsu.edu> In-Reply-To: <5BD5B2B1-7165-4705-8750-50EEBB5E26F2@neville-neil.com> References: <5D6510D5-A8B3-41D9-B175-15FA680AF7F2@eecs.wsu.edu> <20120614115301.1cd0975b@fabiankeil.de> <5BD5B2B1-7165-4705-8750-50EEBB5E26F2@neville-neil.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi everyone, and thank you for the very prompt responses. I did indeed compile world with CFLAGS+=3D-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@neville-neil.com> = wrote: > Top post. >=20 > File a PR and assign it to me (gnn) please. >=20 > I'm on vacation until Sunday but I am actively working on DTrace when = I'm not > on vacation. >=20 > Best, > Geo > On Jun 14, 2012, at 02:53 , Fabian Keil wrote: >=20 >> Ryan Goodfellow <rgoodfel@eecs.wsu.edu> wrote: >>=20 >>> 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: >>>=20 >>> // test.cc >>> #include<cstdlib> >>>=20 >>> int main(void) { >>> for(int i =3D 0; i < 5; i++) { >>> malloc(47); >>> } >>> } >>>=20 >>> then compiling and running DTrace as follows: >>>=20 >>> g++ test.cc -o test >>>=20 >>> dtrace -n 'pid$target::malloc:entry{ }' -c ./test >>>=20 >>>=20 >>> The correct output for this example is something to the tune of: >>>=20 >>> dtrace: description 'pid$target::malloc:entry' matched 2 probes >>> dtrace: pid 95236 has exited >>> CPU ID FUNCTION:NAME >>> 0 188748 malloc:entry=20 >>> 0 188748 malloc:entry=20 >>> 0 188748 malloc:entry=20 >>> 0 188748 malloc:entry=20 >>> 0 188748 malloc:entry=20 >>>=20 >>> (this from a machine with the same code running DTrace) >>>=20 >>> 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=20 >>>=20 >>> and the execution does either not exit on it's own or hangs, it = requires >>> a ctrl-c. >>=20 >> 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. >>=20 >>> 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. >>>=20 >>> 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. >>=20 >> 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. >>=20 >> 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. >>=20 >> Without documentation it's hard to tell. >>=20 >> Fabian >=20
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EF688929-B1ED-487F-94CF-F84806FDDC9E>