Date: Mon, 31 May 2010 10:52:40 -0700 From: Artem Belevich <fbsdlist@src.cx> To: Shrikanth Kamath <shrikanth07@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: DTrace and CTF data Message-ID: <AANLkTil9ccDbCMQf6Q5sCZSsIq550OOhkmbSxRUtRBSW@mail.gmail.com> In-Reply-To: <AANLkTikLmVw-A_YWIc7zMa-duksynpy0YVVI-3zPlIMe@mail.gmail.com> References: <AANLkTinuvZ_8onIF1O1Z42TiItqFDDUmng8PtWCnZQmm@mail.gmail.com> <AANLkTilgGU-v4fQmwKMjevqoX2e8IOaCLz72ZJ_ZJm2f@mail.gmail.com> <AANLkTikLmVw-A_YWIc7zMa-duksynpy0YVVI-3zPlIMe@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>>> If I do a 'objdump' on the kernel.debug binary I do not see any CTF sec= tions showing up? Reference to 'objdump' combined with the fact that 80% of the message was dedicated to disassembly suggested that by "CTF section" you actually meant "probe". > If the CTFCONVERT ran successfully I should be able to see a=A0.SUNW_ctf > section when I run objdump --section-headers. Now it's clear that you indeed are looking for .SUNW_ctf section. My apologies for assuming too much. I should've asked to clarify the question first. > So if I ran the CTFCONVERT=A0utility on a *binary*, it should append CTF = sections to it should it not ? It should, provided it's run properely and that there's something to append. For what it's worth, .SUNW_ctf *is* present in my kernel built with WITH_CTF=3D1: $ objdump --section-headers /boot/kernel/kernel |grep SUNW 24 .SUNW_ctf 00044fe5 0000000000000000 0000000000000000 0062f01c 2= **2 That said, FBT provider may figure out function location based on plain old ELF symbols. For that CTF may not be needed. However, it may not be able to provide function and argument types if CTF info is not present. What does "dtrace -l -f kernel_function -v" show? Does it display proper info about argument types for entry/exit? --Artem On Mon, May 31, 2010 at 9:44 AM, Shrikanth Kamath <shrikanth07@gmail.com> w= rote: > Thanks Artem, but I was actually asking about the CTF info, I always thou= ght > the > probes used the CTF info for *knowing* where to instrument. So if I ran t= he > CTFCONVERT > utility on a *binary*, it should append CTF sections to it should it not = ? > If the CTFCONVERT ran successfully I should be able to see a=A0.SUNW_ctf > section when I run objdump --section-headers. But since this was not ther= e > in the binary > but still FBT was able to instrument the *entry* of the function I was > curious does FBT provider > need the CTF info for function entry/return ? > > -- > Shrikanth R K > > On Mon, May 31, 2010 at 2:21 AM, Artem Belevich <fbsdlist@src.cx> wrote: >> >> You may be confusing CTF info and the probes. Those are different things= . >> >> CTF info just describes data types and variable/function location. >> DTrace later uses it to figure out where and how to install the >> probes. >> >> Probes are installed dynamically, at runtime when DTrace program is >> run. That's why you see it with kgdb on the live kernel once probe has >> been installed. >> DTrace does not modify your original kernel binary, so you will not >> see any probes there. >> >> --Artem >> >> >> >> On Sun, May 30, 2010 at 12:10 PM, Shrikanth Kamath >> <shrikanth07@gmail.com> wrote: >> > I have a query about the FBT provider in DTrace, does FBT provider not >> > need >> > the CTF info for the /kernel binary... >> > >> > I have this observation, when I disassemble say a 'kernel_funtion' , I >> > see >> > the function is not instrumented... >> > >> > (kgdb) disassemble kernel_function >> > Dump of assembler code for function kernel_function: >> > 0xc04aa05d <kernel_function+0>: push =A0 %ebp >> > 0xc04aa05e <kernel_function+1>: mov =A0 =A0%esp,%ebp >> > 0xc04aa060 <kernel_function+3>: sub =A0 =A0$0x2c,%esp >> > >> > >> > Now after I did a 'fbt::kernel_function:entry', if I disassemble the >> > 'kernel_function'... >> > >> > (kgdb) disassemble kernel_function >> > Dump of assembler code for function kernel_function: >> > 0xc04aa05d <kernel_function+0>: lock mov %esp,%ebp =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 <=3D=3D >> > FBT >> > instrumentation >> > 0xc04aa060 <kernel_function+3>: sub =A0 =A0$0x2c,%esp >> > >> > If I do a 'objdump' on the kernel.debug binary I do not see any CTF >> > sections >> > showing up? >> > >> > >> > -- >> > Shrikanth R K >> > _______________________________________________ >> > freebsd-hackers@freebsd.org mailing list >> > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >> > To unsubscribe, send any mail to >> > "freebsd-hackers-unsubscribe@freebsd.org" >> > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTil9ccDbCMQf6Q5sCZSsIq550OOhkmbSxRUtRBSW>