linux/tools/perf
Cody P Schafer 3aafe5ae08 perf symbols: Use both runtime and debug images
We keep both a 'runtime' elf image as well as a 'debug' elf image around
and generate symbols by looking at both of these.

This eliminates the need for the want_symtab/goto restart mechanism
combined with iterating over and reopening the elf images a second time.

Also give dso__synthsize_plt_symbols() the runtime image (which has
dynsyms) instead of the symbol image (which may only have a symtab and
no dynsyms).

Previously if a debug image was found all runtime images were ignored.

This fixes 2 issues:

 - Symbol resolution to failure on PowerPC systems with debug symbols
   installed, as the debug images lack a '.opd' section which contains
   function descriptors.

 - On all archs, plt synthesis failed when a debug image was loaded and
   that debug image lacks a dynsym section while a runtime image has a
   dynsym section.

Assumptions:

 - If a .opd section exists, it is contained in the highest priority
   image with a dynsym section.

 - This generally implies that the debug image lacks a dynsym section
   (ie: it is marked as NO_BITS).

Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com>
Cc: David Hansen <dave@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Matt Hellsley <matthltc@us.ibm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/1344637382-22789-17-git-send-email-cody@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-08-13 14:46:55 -03:00
..
arch perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
bench perf bench: Fix confused variable namings and descriptions in mem subsystem 2012-07-02 14:35:45 -03:00
config perf tools: Add libunwind dependency for DWARF CFI unwinding 2012-08-10 16:46:07 -03:00
Documentation perf list: Document precise event sampling for AMD IBS 2012-08-08 12:42:21 -03:00
python perf python: Use attr.watermark in twatch.py 2012-01-30 18:38:23 -02:00
scripts perf script python: Correct handler check and spelling errors 2012-08-09 13:26:19 -03:00
ui perf hists browser: Add verbose mode hotkey 2012-08-06 11:56:54 -03:00
util perf symbols: Use both runtime and debug images 2012-08-13 14:46:55 -03:00
.gitignore perf tools: Ignore auto-generated bison/flex files 2012-04-14 13:50:39 -03:00
bash_completion perf tools: Support for events bash completion 2012-08-09 15:59:26 -03:00
builtin-annotate.c perf tools: Convert critical messages to ui__error() 2012-05-29 11:53:42 -03:00
builtin-bench.c perf bench: Documentation update 2012-06-27 13:17:48 -03:00
builtin-buildid-cache.c perf buildid: add perfconfig option to specify buildid cache dir 2010-06-05 09:34:04 -03:00
builtin-buildid-list.c perf symbols: Introduce symbol__elf_init() 2012-08-09 16:19:14 -03:00
builtin-diff.c perf diff: Fix to work with new hists design 2012-03-22 15:12:09 -03:00
builtin-evlist.c perf tools: Move all users of event_name to perf_evsel__name 2012-06-19 13:06:20 -03:00
builtin-help.c perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
builtin-inject.c perf symbols: Support minimal build without libelf 2012-08-09 16:26:38 -03:00
builtin-kmem.c perf kmem: Use evsel->tp_format and perf_sample 2012-08-07 23:44:20 -03:00
builtin-kvm.c perf kvm: Do guest-only counting by default 2012-01-06 15:47:37 -02:00
builtin-list.c perf tools: Support for events bash completion 2012-08-09 15:59:26 -03:00
builtin-lock.c perf lock record: improve message when tracepoints are not enabled 2012-08-09 14:14:28 -03:00
builtin-probe.c perf probe: Detect probe target when m/x options are absent 2012-05-11 13:58:53 -03:00
builtin-record.c perf tools: Support for DWARF mode callchain 2012-08-11 15:07:18 -03:00
builtin-report.c perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
builtin-sched.c perf sched: Use perf_sample 2012-08-07 23:46:19 -03:00
builtin-script.c perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
builtin-stat.c Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core 2012-06-20 13:41:53 +02:00
builtin-test.c perf evlist: Introduce perf_evlist__parse_sample 2012-08-02 11:42:57 -03:00
builtin-timechart.c perf report: Accept fifos as input file 2011-12-23 17:01:03 -02:00
builtin-top.c perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
builtin.h perf tools: Make perf.data more self-descriptive (v8) 2011-10-07 17:01:24 -03:00
command-list.txt perf symbols: Support minimal build without libelf 2012-08-09 16:26:38 -03:00
CREDITS
design.txt perf tools: Update ioctl documentation for PERF_IOC_FLAG_GROUP 2012-05-31 11:38:42 -03:00
Makefile perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
MANIFEST perf tools: Fix make tarballs 2012-05-30 15:05:59 -03:00
perf-archive.sh perf archive: Correct cutting of symbolic link 2012-04-14 13:52:15 -03:00
perf.c perf symbols: Support minimal build without libelf 2012-08-09 16:26:38 -03:00
perf.h perf tools: Support for DWARF mode callchain 2012-08-11 15:07:18 -03:00