summaryrefslogtreecommitdiffstats
path: root/tools/lib/subcmd/run-command.c
diff options
context:
space:
mode:
authorMasami Hiramatsu <mhiramat@kernel.org>2017-01-04 04:30:19 +0100
committerArnaldo Carvalho de Melo <acme@redhat.com>2017-01-04 15:44:22 +0100
commit8a937a25a7e3c19d5fb3f9d92f605cf5fda219d8 (patch)
treee8537a420e2528491ed1f8d454d71e8781c57072 /tools/lib/subcmd/run-command.c
parentperf probe: Fix --funcs to show correct symbols for offline module (diff)
downloadlinux-8a937a25a7e3c19d5fb3f9d92f605cf5fda219d8.tar.xz
linux-8a937a25a7e3c19d5fb3f9d92f605cf5fda219d8.zip
perf probe: Fix to probe on gcc generated symbols for offline kernel
Fix perf-probe to show probe definition on gcc generated symbols for offline kernel (including cross-arch kernel image). gcc sometimes optimizes functions and generate new symbols with suffixes such as ".constprop.N" or ".isra.N" etc. Since those symbol names are not recorded in DWARF, we have to find correct generated symbols from offline ELF binary to probe on it (kallsyms doesn't correct it). For online kernel or uprobes we don't need it because those are rebased on _text, or a section relative address. E.g. Without this: $ perf probe -k build-arm/vmlinux -F __slab_alloc* __slab_alloc.constprop.9 $ perf probe -k build-arm/vmlinux -D __slab_alloc p:probe/__slab_alloc __slab_alloc+0 If you put above definition on target machine, it should fail because there is no __slab_alloc in kallsyms. With this fix, perf probe shows correct probe definition on __slab_alloc.constprop.9: $ perf probe -k build-arm/vmlinux -D __slab_alloc p:probe/__slab_alloc __slab_alloc.constprop.9+0 Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/148350060434.19001.11864836288580083501.stgit@devbox Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/lib/subcmd/run-command.c')
0 files changed, 0 insertions, 0 deletions