lttng-dev.lists.lttng.org archive mirror
 help / color / mirror / Atom feed
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

  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: link
Be 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).