Date: Tue, 15 Apr 2014 23:15:58 -0300 From: carlos antonio neira bustos <cneirabustos@gmail.com> To: Mark Johnston <markj@freebsd.org> Cc: "freebsd-dtrace@freebsd.org" <freebsd-dtrace@freebsd.org> Subject: Re: uaddr and friends Message-ID: <CACiB22hQ-9bBeFcFNeEfcrRu2MK0VxAUP1taHFCxJoW0eypxcg@mail.gmail.com> In-Reply-To: <CAMw1wOxWUpCtrYhkp-NUfigPZUewpyesYzTYG2s=uHLmMXhQwg@mail.gmail.com> References: <CACiB22g4JHWhj9ZPWmKKg1FAF376J3TBcrOtgOFrs4JHkFvkOw@mail.gmail.com> <CAMw1wOxWUpCtrYhkp-NUfigPZUewpyesYzTYG2s=uHLmMXhQwg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Mark, I was looking at this document https://wikis.oracle.com/display/DTrace/Actions+and+Subroutines#ActionsandSubroutines-%7B%7Busym%7D%7D currently looking at the code uaddr is the same as usym, but according to this document usym will print the symbol for a specified address. This is analogous to how uaddr works, but without the hexadecimal offsets. uaddr: date`clock_val+0x1 usym: date`clock_val here are my outputs from usym and uaddr : root@bsd:/home/cneira # dtrace -n 'pid$target::main:{usym(uregs[R_PC])}' -c ./test dtrace: description 'pid$target::main:' matched 2 probes abCPU ID FUNCTION:NAME 0 56282 main:entry test`main 0 56281 main:return test`main dtrace: pid 10588 has exited root@bsd:/home/cneira # dtrace -n 'pid$target::main:{uaddr(uregs[R_PC])}' -c ./test dtrace: description 'pid$target::main:' matched 2 probes abCPU ID FUNCTION:NAME 0 56282 main:entry test`main+0x1 0 56281 main:return test`main+0x23 dtrace: pid 10591 has exited As current is only using dt_print_usym for uaddr the output should not have the hexadecimal offset specified in that documentation. So I'm somewhat lost about which is the correct behavior , Do you have a uaddr and usym output example in current to check this?, all my changes were done in 10 prod release. Bests On Tue, Apr 15, 2014 at 10:09 PM, Mark Johnston <markj@freebsd.org> wrote: > On Tue, Apr 15, 2014 at 8:35 PM, carlos antonio neira bustos > <cneirabustos@gmail.com> wrote: > > Hi All, > > > > I was looking at Dtrace todo list from > https://wiki.freebsd.org/DTraceTODO > > and started to work on : Get uaddr(), ufunc(), umod(), and usym() action > > funtions working. > > I have the data recording action (uaddr) working now, here is an > > example: > > Hi! > > Hm, these should have been (at least mostly) working since r258902: > http://svnweb.freebsd.org/base?view=revision&revision=258902 > > > > > root@bsd:/home/cneira # dtrace -n > 'pid$target::main:{uaddr(uregs[R_PC])}' > > -c ./test > > dtrace: description 'pid$target::main:' matched 2 probes > > abCPU ID FUNCTION:NAME > > 0 56282 main:entry > > test`main+0x1 > > > > 0 56281 main:return > > test`main+0x23 > > > > dtrace: pid 9687 has exited > > > > Here is the output of nm from the test binary I have used to check this > > change. > > > > U _init_tls@@FBSD_1.0 > > 08048380 T _start > > 080483a0 t _start1 > > 0804814c r abitag > > U atexit@@FBSD_1.0 > > 08048164 r crt_noinit_tag > > 080485c0 T dosomething > > 08049764 B environ > > U exit@@FBSD_1.0 > > 080484f0 t finalizer > > 08048560 t frame_dummy > > 08048590 T main > > U putchar@@FBSD_1.0 > > > > > > root@bsd:/home/cneira # dtrace -c ./test -n 'pid$target::main:entry{ > > uaddr(0x080485c0); }' > > dtrace: description 'pid$target::main:entry' matched 1 probe > > abCPU ID FUNCTION:NAME > > 0 56281 main:entry > > test`dosomething > > > > dtrace: pid 9736 has exited > > > > I'll continue working on the rest, how do I submit a patch with these > > changes ? > > Pasting it inline is generally fine if it's not too large. It's also > ok to put it in a public directory somewhere and post a link to it. > > -Mark >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACiB22hQ-9bBeFcFNeEfcrRu2MK0VxAUP1taHFCxJoW0eypxcg>