All of lore.kernel.org
 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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.