Arnaldo Carvalho de Melo
3995614d9b
perf annotate: Fix fallback to unparsed disassembler line
...
When annotating source/disasm lines the perf tools parse the output of
objdump, trying to provide augmented output that allows navigating
jumps, calls, etc.
But when a line output by objdump can't be parsed the annotation code
falls back to just presenting the unparsed line.
When fixing a leak in the 0fb9f2aab7 commit ("perf annotate: Fix
memory leaks in LOCK handling") we failed to take that into account and
instead tried to free one of the data structures that should be freed
only when successfully allocated, oops, segfault.
There was a change in the way the objdump output for lock prefixed
instructions is formatted that lead the relevant parser to fail to grok
it.
At least RHEL7 works ok, but Fedora 20 segfaults.
Fix it by making the ins__delete() destructor work like the most basic
destructor: free().
Namely make it accept a NULL pointer and when handling it just do
nothing.
Further investigation is needed to figure out the nature of the objdump
output change so as to make the parser grok it.
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Rabin Vincent <rabin@rab.in>
Link: http://lkml.kernel.org/n/tip-7wsy0zo292pif0yjoqpfryrz@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-03-05 15:27:28 -03:00
..
arch
perf tools powerpc: Use dwfl_report_elf() instead of offline.
2015-01-16 17:49:30 -03:00
bench
perf bench: Fix order of arguments to memcpy_alloc_mem
2015-02-22 23:10:56 -03:00
config
perf tools: Make sparc64 arch point to sparc
2015-02-25 17:39:17 -03:00
Documentation
Merge branch 'perf/hw_breakpoints' into perf/core
2015-01-28 15:48:59 +01:00
python
perf python: Remove duplicate TID bit from mask
2013-08-07 17:35:25 -03:00
scripts
perf scripting perl: Force to use stdbool
2015-01-21 10:05:00 -03:00
tests
Merge branch 'perf/hw_breakpoints' into perf/core
2015-01-28 15:48:59 +01:00
ui
perf ui/tui: Show fatal error message only if exists
2015-01-22 17:05:10 -03:00
util
perf annotate: Fix fallback to unparsed disassembler line
2015-03-05 15:27:28 -03:00
.gitignore
perf tools: Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore
2014-11-19 12:34:24 -03:00
builtin-annotate.c
perf report: Show progress bar for output resorting
2014-12-23 12:01:37 -03:00
builtin-bench.c
perf bench: Add --repeat option
2014-06-19 16:13:15 -03:00
builtin-buildid-cache.c
perf tools: Remove EOL whitespaces
2015-01-21 13:24:31 -03:00
builtin-buildid-list.c
perf session: Separating data file properties from session
2013-10-21 17:33:25 -03:00
builtin-diff.c
perf diff: Fix -o/--order option behavior
2015-01-21 13:24:35 -03:00
builtin-evlist.c
perf tools: Modify error code for when perf_session__new() fails
2014-09-26 12:32:58 -03:00
builtin-help.c
perf help: Use strerror_r instead of strerror
2014-08-15 13:08:26 -03:00
builtin-inject.c
perf tools: Use perf_data_file__fd() consistently
2015-01-29 16:58:24 -03:00
builtin-kmem.c
perf tools: Modify error code for when perf_session__new() fails
2014-09-26 12:32:58 -03:00
builtin-kvm.c
perf kvm stat live: Mark events as (x86 only) in help output
2014-12-10 12:08:59 -03:00
builtin-list.c
perf list: Fix --raw-dump option
2015-01-02 23:26:58 -03:00
builtin-lock.c
perf tools: Modify error code for when perf_session__new() fails
2014-09-26 12:32:58 -03:00
builtin-mem.c
perf mem: Move the mem_operations global to struct perf_mem
2015-01-21 13:24:31 -03:00
builtin-probe.c
perf probe: Add --quiet option to suppress output result message
2014-10-29 10:32:49 -02:00
builtin-record.c
perf tools: Use perf_data_file__fd() consistently
2015-01-29 16:58:24 -03:00
builtin-report.c
perf report: Get rid of report__inc_stat()
2015-01-21 13:24:32 -03:00
builtin-sched.c
perf sched: Stop updating hists stats, not used
2014-10-09 11:46:35 -03:00
builtin-script.c
perf tools: Export usage string and option table of perf record
2014-10-29 10:32:47 -02:00
builtin-stat.c
perf tools: Remove EOL whitespaces
2015-01-21 13:24:31 -03:00
builtin-timechart.c
perf tools: Export usage string and option table of perf record
2014-10-29 10:32:47 -02:00
builtin-top.c
perf tools: Remove EOL whitespaces
2015-01-21 13:24:31 -03:00
builtin-trace.c
tools lib fs debugfs: Introduce debugfs__strerror_open_tp
2015-01-22 17:02:20 -03:00
builtin.h
perf tools: Add new mem command for memory access profiling
2013-04-01 12:21:44 -03:00
command-list.txt
perf tools: Add new mem command for memory access profiling
2013-04-01 12:21:44 -03:00
CREDITS
perf_counter tools: Add CREDITS file for Git contributors
2009-06-24 19:54:29 +02:00
design.txt
perf tools: Update some code references in design.txt
2014-03-18 18:17:06 -03:00
Makefile
perf tools: Add 'build-test' make target
2014-01-16 16:26:26 -03:00
Makefile.perf
tools: Remove bitops/hweight usage of bits in tools/perf
2015-01-16 17:49:29 -03:00
MANIFEST
tools: Remove bitops/hweight usage of bits in tools/perf
2015-01-16 17:49:29 -03:00
perf-archive.sh
perf archive: Make 'f' the last parameter for tar
2012-09-17 13:10:42 -03:00
perf-completion.sh
perf sched: Introduce --list-cmds for use by scripts
2014-04-16 17:16:05 +02:00
perf-read-vdso.c
perf tools: Build programs to copy 32-bit compatibility
2014-10-29 10:32:48 -02:00
perf-sys.h
perf tools: Avoid build splat for syscall numbers with uclibc
2015-01-16 17:49:29 -03:00
perf-with-kcore.sh
perf tools: Add perf-with-kcore script
2014-09-17 17:08:08 -03:00
perf.c
perf tools: Add --buildid-dir option to set cache directory
2014-12-09 09:14:35 -03:00
perf.h
perf tools: Add core support for sampling intr machine state regs
2014-11-16 11:41:59 +01:00