From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: bhargavb <bhargavaramudu@gmail.com>,
linux-kernel@vger.kernel.org, Paul Clarke <pc@us.ibm.com>,
Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>,
Thomas Richter <tmricht@linux.vnet.ibm.com>,
linux-rt-users@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v4] perf-probe: Support escaped character in parser
Date: Tue, 12 Dec 2017 12:27:24 -0300 [thread overview]
Message-ID: <20171212152724.GO3958@kernel.org> (raw)
In-Reply-To: <151309111236.18107.5634753157435343410.stgit@devbox>
Em Wed, Dec 13, 2017 at 12:05:12AM +0900, Masami Hiramatsu escreveu:
> Support the special characters escaped by '\' in parser.
> This allows user to specify versions directly like below.
>
> =====
> # ./perf probe -x /lib64/libc-2.25.so malloc_get_state\\@GLIBC_2.2.5
> Added new event:
> probe_libc:malloc_get_state (on malloc_get_state@GLIBC_2.2.5 in /usr/lib64/libc-2.25.so)
>
> You can now use it in all perf tools, such as:
>
> perf record -e probe_libc:malloc_get_state -aR sleep 1
>
> =====
>
> Or, you can use separators in source filename, e.g.
>
> =====
> # ./perf probe -x /opt/test/a.out foo+bar.c:3
> Semantic error :There is non-digit character in offset.
> Error: Command Parse Error.
> =====
>
> Usually "+" in source file cause parser error, but
>
> =====
> # ./perf probe -x /opt/test/a.out foo\\+bar.c:4
> Added new event:
> probe_a:main (on @foo+bar.c:4 in /opt/test/a.out)
>
> You can now use it in all perf tools, such as:
>
> perf record -e probe_a:main -aR sleep 1
> =====
>
> escaped "\+" allows you to specify that.
<SNIP>
> Changes in v4:
> - Fix a build error (Thanks for Arnaldo!)
> This time, I ensured that I ran "make build-test" and it passed.
Thanks, testing it I still have that artifact:
---------------------------------------
[root@jouet perf]# perf probe -x /lib64/libc-2.25.so malloc_get_state\\@GLIBC_2.2.5
Added new event:
probe_libc:malloc_get_state (on malloc_get_state@GLIBC_2.2.5 in /usr/lib64/libc-2.25.so)
You can now use it in all perf tools, such as:
perf record -e probe_libc:malloc_get_state -aR sleep 1
[root@jouet perf]# perf probe -l
Failed to find debug information for address dd38eca7
probe_libc:malloc_get_state (on 0xdd38eca7 in /usr/lib64/libc-2.25.so)
[root@jouet perf]#
---------------------------------------
I mean the "on 0xdd38eca7" part:
That failed to find debug information part:
[root@jouet perf]# perf probe -vv -l
Add filter: *
Opening /sys/kernel/debug/tracing//kprobe_events write=0
Opening /sys/kernel/debug/tracing//uprobe_events write=0
Parsing probe_events: p:probe_libc/malloc_get_state /usr/lib64/libc-2.25.so:0x00000000dd38eca7
Group:probe_libc Event:malloc_get_state probe:p
try to find information at dd38eca7 in /usr/lib64/libc-2.25.so
Open Debuginfo file: /usr/lib/debug/usr/lib64/libc-2.25.so.debug
Failed to find debug information for address dd38eca7
Failed to find corresponding probes from debuginfo.
symsrc__init: build id mismatch for /usr/lib/debug/usr/lib64/libc-2.25.so.debug.
Failed to find probe point from both of dwarf and map.
probe_libc:malloc_get_state (on 0xdd38eca7 in /usr/lib64/libc-2.25.so)
[root@jouet perf]#
Ok, so build-id mismatch, lets see:
[root@jouet perf]# rpm -q glibc glibc-debuginfo
glibc-2.25-10.fc26.x86_64
glibc-2.25-10.fc26.i686
glibc-debuginfo-2.25-12.fc26.x86_64
[root@jouet perf]#
Ok, the debuginfo file is newer than the glibc installed, updating glibc
now...
We could have a more informative message in this case, right? I.e.
something like:
[root@jouet perf]# perf probe -l
There was a build-id mismatch while trying to resolve 0xdd38eca7, please
check your system's debuginfo files for mismatches, e.g. check the
versions for glibc and glibc-debuginfo.
probe_libc:malloc_get_state (on 0xdd38eca7 in /usr/lib64/libc-2.25.so)
[root@jouet perf]#
- Arnaldo
next prev parent reply other threads:[~2017-12-12 15:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-12 15:05 [PATCH v4] perf-probe: Support escaped character in parser Masami Hiramatsu
2017-12-12 15:27 ` Arnaldo Carvalho de Melo [this message]
2017-12-13 13:40 ` Masami Hiramatsu
2017-12-13 15:42 ` Arnaldo Carvalho de Melo
2017-12-16 14:52 ` Masami Hiramatsu
2017-12-28 15:32 ` [tip:perf/core] perf probe: " tip-bot for Masami Hiramatsu
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=20171212152724.GO3958@kernel.org \
--to=acme@kernel.org \
--cc=bhargavaramudu@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=pc@us.ibm.com \
--cc=ravi.bangoria@linux.vnet.ibm.com \
--cc=tmricht@linux.vnet.ibm.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.