From: "Liu, Changcheng via lttng-dev" <lttng-dev@lists.lttng.org> To: "Christophe Bédard" <bedard.christophe@gmail.com>, matthew.khouzam@ericsson.com Cc: lttng-dev@lists.lttng.org Subject: Re: get function names with lttng-ust-cyg-profile Date: Wed, 24 Jun 2020 09:10:30 +0800 [thread overview] Message-ID: <20200624011030.GA4166363@jerryopenix> (raw) In-Reply-To: <CAAS9doZNif9Cw=kmo0hvKuF_qVBiqX_233JWFr4fTc5A72eLvw@mail.gmail.com> > You could use the command 'nm' to get your symbols and look them up. I > am sure Babeltrace can do this from a python level. You could also use > a GUI based trace viewer to get the information. nm only shows the linked address, but the traced address are the loaded address in memory. So, they're different. For example: trace@trace:~/cc$ nm instrument | grep 'add3\|main' 00000000000011a9 T add3 00000000000011ee T main @Christophe: Do you mean that babeltrace2 can help get the function name and call site offset? B.R. Changcheng On 12:52 Tue 23 Jun, Christophe Bédard wrote: > Hi, > > Babeltrace is doing exactly what it should as far as I know. > > yes, but babeltrace can provide the information if: > * ip and vpid contexts are enabled (for userspace), e.g. > > $ lttng add-context --userspace --type=ip --type=vpid > > * LTTng state dump events are enabled, e.g. > > $ lttng enable-event --userspace 'lttng_ust_statedump:*' > > see this (from bt2 but it also applies to > bt1): [1]https://babeltrace.org/docs/v2.0/man7/babeltrace2-filter.lttng > -utils.debug-info.7/#doc-lttng-prereq > Note that the Python bindings for babeltrace don't provide/expose this > debug info. > Christophe > On Tue, 23 Jun 2020 at 11:12, Matthew Khouzam via lttng-dev > <[2]lttng-dev@lists.lttng.org> wrote: > > Hi, > You have the pointers that are traced. Babeltrace is doing exactly what > it should as far as I know. > You could use the command 'nm' to get your symbols and look them up. I > am sure Babeltrace can do this from a python level. You could also use > a GUI based trace viewer to get the information. > Hope that helps. > Matthew > __________________________________________________________________ > > From: lttng-dev <[3]lttng-dev-bounces@lists.lttng.org> on behalf of > Liu, Changcheng via lttng-dev <[4]lttng-dev@lists.lttng.org> > Sent: Tuesday, June 23, 2020 10:37 AM > To: [5]lttng-dev@lists.lttng.org <[6]lttng-dev@lists.lttng.org> > Cc: [7]changcheng.liu@intel.com <[8]changcheng.liu@intel.com> > Subject: [lttng-dev] get function names with lttng-ust-cyg-profile > > Hi all, > I'm trying to use lttng-ust-cyg-profile to trace program. > Does anyone know how to get function names and offset through > lttng-ust-cyg-profile? > In below example, the babeltrace could only get the function > entry/exit value. > 1. Source program: instrument.c > 1 #include <stdio.h> > 2 > 3 int add3(int val) { > 4 return val + 3; > 5 } > 6 > 7 int main(int argc, char **argv) { > 8 int x = 4; > 9 > 10 puts("Press Enter to continue..."); > 11 getchar(); > 12 > 13 x = add3(x); > 14 > 15 return 0; > 16 } > 2. build source code: > $ gcc -g -finstrument-functions instrument.c -o instrument > 3. run program: > $ > LD_PRELOAD=/usr/lib/x86_64-linux-gnu/liblttng-ust-cyg-profile.so > ./instrument > 4. start trace process: > trace@trace:~/cc$ sudo lttng create instrument > Session instrument created. > Traces will be output to > /root/lttng-traces/instrument-20200623-222917 > trace@trace:~/cc$ sudo lttng enable-channel user_func_trace > --userspace > UST channel user_func_trace enabled for session instrument > trace@trace:~/cc$ sudo lttng enable-event --userspace > lttng_ust_cyg_profile:func_entry --channel user_func_trace > UST event lttng_ust_cyg_profile:func_entry created in channel > user_func_trace > trace@trace:~/cc$ sudo lttng enable-event --userspace > lttng_ust_cyg_profile:func_exit --channel user_func_trace > UST event lttng_ust_cyg_profile:func_exit created in channel > user_func_trace > trace@trace:~/cc$ sudo lttng start > Tracing started for session instrument > trace@trace:~/cc$ sudo lttng destroy > Destroying session instrument.. > Session instrument destroyed > trace@trace:~/cc$ sudo babeltrace > /root/lttng-traces/instrument-20200623-222917 > [22:29:55.388607059] (+?.?????????) trace > lttng_ust_cyg_profile:func_entry: { cpu_id = 2 }, { addr = > 0x5625C88B01A9, call_site = 0x5625C88B0237 } > [22:29:55.388612293] (+0.000005234) trace > lttng_ust_cyg_profile:func_exit: { cpu_id = 2 }, { addr = > 0x5625C88B01A9, call_site = 0x5625C88B0237 } > [22:29:55.388613215] (+0.000000922) trace > lttng_ust_cyg_profile:func_exit: { cpu_id = 2 }, { addr = > 0x5625C88B01EE, call_site = 0x7FE40BD5C0B3 } > B.R. > Changcheng _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
WARNING: multiple messages have this Message-ID (diff)
From: "Liu, Changcheng via lttng-dev" <lttng-dev@lists.lttng.org> To: "Christophe Bédard" <bedard.christophe@gmail.com>, matthew.khouzam@ericsson.com Cc: lttng-dev@lists.lttng.org Subject: Re: [lttng-dev] get function names with lttng-ust-cyg-profile Date: Wed, 24 Jun 2020 09:10:30 +0800 [thread overview] Message-ID: <20200624011030.GA4166363@jerryopenix> (raw) Message-ID: <20200624011030.AgpGSBtn5JoC_l3_TOzdeszL1pIMbf_yXUFKKzPElBI@z> (raw) In-Reply-To: <CAAS9doZNif9Cw=kmo0hvKuF_qVBiqX_233JWFr4fTc5A72eLvw@mail.gmail.com> > You could use the command 'nm' to get your symbols and look them up. I > am sure Babeltrace can do this from a python level. You could also use > a GUI based trace viewer to get the information. nm only shows the linked address, but the traced address are the loaded address in memory. So, they're different. For example: trace@trace:~/cc$ nm instrument | grep 'add3\|main' 00000000000011a9 T add3 00000000000011ee T main @Christophe: Do you mean that babeltrace2 can help get the function name and call site offset? B.R. Changcheng On 12:52 Tue 23 Jun, Christophe Bédard wrote: > Hi, > > Babeltrace is doing exactly what it should as far as I know. > > yes, but babeltrace can provide the information if: > * ip and vpid contexts are enabled (for userspace), e.g. > > $ lttng add-context --userspace --type=ip --type=vpid > > * LTTng state dump events are enabled, e.g. > > $ lttng enable-event --userspace 'lttng_ust_statedump:*' > > see this (from bt2 but it also applies to > bt1): [1]https://babeltrace.org/docs/v2.0/man7/babeltrace2-filter.lttng > -utils.debug-info.7/#doc-lttng-prereq > Note that the Python bindings for babeltrace don't provide/expose this > debug info. > Christophe > On Tue, 23 Jun 2020 at 11:12, Matthew Khouzam via lttng-dev > <[2]lttng-dev@lists.lttng.org> wrote: > > Hi, > You have the pointers that are traced. Babeltrace is doing exactly what > it should as far as I know. > You could use the command 'nm' to get your symbols and look them up. I > am sure Babeltrace can do this from a python level. You could also use > a GUI based trace viewer to get the information. > Hope that helps. > Matthew > __________________________________________________________________ > > From: lttng-dev <[3]lttng-dev-bounces@lists.lttng.org> on behalf of > Liu, Changcheng via lttng-dev <[4]lttng-dev@lists.lttng.org> > Sent: Tuesday, June 23, 2020 10:37 AM > To: [5]lttng-dev@lists.lttng.org <[6]lttng-dev@lists.lttng.org> > Cc: [7]changcheng.liu@intel.com <[8]changcheng.liu@intel.com> > Subject: [lttng-dev] get function names with lttng-ust-cyg-profile > > Hi all, > I'm trying to use lttng-ust-cyg-profile to trace program. > Does anyone know how to get function names and offset through > lttng-ust-cyg-profile? > In below example, the babeltrace could only get the function > entry/exit value. > 1. Source program: instrument.c > 1 #include <stdio.h> > 2 > 3 int add3(int val) { > 4 return val + 3; > 5 } > 6 > 7 int main(int argc, char **argv) { > 8 int x = 4; > 9 > 10 puts("Press Enter to continue..."); > 11 getchar(); > 12 > 13 x = add3(x); > 14 > 15 return 0; > 16 } > 2. build source code: > $ gcc -g -finstrument-functions instrument.c -o instrument > 3. run program: > $ > LD_PRELOAD=/usr/lib/x86_64-linux-gnu/liblttng-ust-cyg-profile.so > ./instrument > 4. start trace process: > trace@trace:~/cc$ sudo lttng create instrument > Session instrument created. > Traces will be output to > /root/lttng-traces/instrument-20200623-222917 > trace@trace:~/cc$ sudo lttng enable-channel user_func_trace > --userspace > UST channel user_func_trace enabled for session instrument > trace@trace:~/cc$ sudo lttng enable-event --userspace > lttng_ust_cyg_profile:func_entry --channel user_func_trace > UST event lttng_ust_cyg_profile:func_entry created in channel > user_func_trace > trace@trace:~/cc$ sudo lttng enable-event --userspace > lttng_ust_cyg_profile:func_exit --channel user_func_trace > UST event lttng_ust_cyg_profile:func_exit created in channel > user_func_trace > trace@trace:~/cc$ sudo lttng start > Tracing started for session instrument > trace@trace:~/cc$ sudo lttng destroy > Destroying session instrument.. > Session instrument destroyed > trace@trace:~/cc$ sudo babeltrace > /root/lttng-traces/instrument-20200623-222917 > [22:29:55.388607059] (+?.?????????) trace > lttng_ust_cyg_profile:func_entry: { cpu_id = 2 }, { addr = > 0x5625C88B01A9, call_site = 0x5625C88B0237 } > [22:29:55.388612293] (+0.000005234) trace > lttng_ust_cyg_profile:func_exit: { cpu_id = 2 }, { addr = > 0x5625C88B01A9, call_site = 0x5625C88B0237 } > [22:29:55.388613215] (+0.000000922) trace > lttng_ust_cyg_profile:func_exit: { cpu_id = 2 }, { addr = > 0x5625C88B01EE, call_site = 0x7FE40BD5C0B3 } > B.R. > Changcheng _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
next prev parent reply other threads:[~2020-06-24 1:15 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-06-23 14:37 get function names with lttng-ust-cyg-profile Liu, Changcheng via lttng-dev 2020-06-23 14:37 ` [lttng-dev] " Liu, Changcheng via lttng-dev 2020-06-23 15:12 ` Matthew Khouzam via lttng-dev 2020-06-23 15:12 ` [lttng-dev] " Matthew Khouzam via lttng-dev 2020-06-23 16:52 ` Christophe Bédard via lttng-dev 2020-06-23 16:52 ` [lttng-dev] " Christophe Bédard via lttng-dev 2020-06-24 1:10 ` Liu, Changcheng via lttng-dev [this message] 2020-06-24 1:10 ` Liu, Changcheng via lttng-dev 2020-06-24 1:41 ` Liu, Changcheng via lttng-dev 2020-06-24 1:41 ` [lttng-dev] " Liu, Changcheng via lttng-dev 2020-06-26 14:19 ` Christophe Bédard via lttng-dev 2020-06-26 14:19 ` [lttng-dev] " Christophe Bédard via lttng-dev 2020-06-26 14:22 ` Liu, Changcheng via lttng-dev 2020-06-26 14:22 ` [lttng-dev] " Liu, Changcheng via lttng-dev 2020-06-27 2:38 ` Liu, Changcheng via lttng-dev 2020-06-27 2:38 ` [lttng-dev] " Liu, Changcheng via lttng-dev
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200624011030.GA4166363@jerryopenix \ --to=lttng-dev@lists.lttng.org \ --cc=bedard.christophe@gmail.com \ --cc=changcheng.liu@intel.com \ --cc=matthew.khouzam@ericsson.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).