Namhyung Kim
c09e31cc12
perf hists browser: Fix segfault when showing callchain
...
When perf report on TUI shows callchain it checks first node has
siblings to determine whether it needs to print percentage value.
But it missed a case that first node is NULL. So sometimes it segfaults
like below:
$ perf top -g
perf: Segmentation fault
-------- backtrace --------
perf[0x4fcefb]
/usr/lib/libc.so.6(+0x33b20)[0x7f2a35839b20]
perf(rb_next+0x8)[0x47d3d8]
perf[0x4f6058]
perf[0x4f833b]
perf[0x4f8610]
perf[0x4f209e]
perf(ui_browser__run+0x3a)[0x4f2e6a]
perf[0x4f94ee]
perf(perf_evlist__tui_browse_hists+0x94)[0x4fbbf4]
perf[0x444d10]
/usr/lib/libpthread.so.0(+0x7314)[0x7f2a37070314]
/usr/lib/libc.so.6(clone+0x6d)[0x7f2a358ee5bd]
$ addr2line -e `which perf` 0x4f6058
/home/namhyung/project/linux/tools/perf/ui/browsers/hists.c:553
I don't know why the backtrace didn't print some symbols..
Signed-off-by: Namhyung Kim <[email protected] >
Fixes: 4087d11cd9 ("perf hists browser: Print overhead percent value for first-level callchain")
Cc: Adrian Hunter <[email protected] >
Cc: Andi Kleen <[email protected] >
Cc: Frederic Weisbecker <[email protected] >
Cc: Ingo Molnar <[email protected] >
Cc: Jiri Olsa <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Cc: Stephane Eranian <[email protected] >
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2015-01-08 11:59:16 -03:00
..
arch
perf tools: A thread's machine can be found via thread->mg->machine
2014-10-29 10:32:46 -02:00
bench
perf bench: Fix memcpy/memset output
2014-12-09 09:14:08 -03:00
config
perf tools: Clean up libelf feature support code
2014-11-19 12:33:46 -03:00
Documentation
perf tools: Add --buildid-dir option to set cache directory
2014-12-09 09:14:35 -03:00
python
scripts
perf tools: Add call information to Python export
2014-11-03 18:10:06 -03:00
tests
perf hists: Fix children sort key behavior
2015-01-08 11:26:56 -03:00
ui
perf hists browser: Fix segfault when showing callchain
2015-01-08 11:59:16 -03:00
util
perf callchain: Free callchains when hist entries are deleted
2015-01-08 11:56:35 -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 buildid cache: Fix -a segfault related to kcore handling
2014-12-09 09:14:34 -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 to sort by baseline field by default
2015-01-02 23:27:18 -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: Add id index
2014-10-29 11:24:47 -02: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 tools: Modify error code for when perf_session__new() fails
2014-09-26 12:32:58 -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 record: Add new -I option to sample interrupted machine state
2014-11-16 11:42:02 +01:00
builtin-report.c
perf report: Show progress bar for output resorting
2014-12-23 12:01:37 -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 stat: Add support for snapshot counters
2014-12-01 20:00: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 report: Show progress bar for output resorting
2014-12-23 12:01:37 -03:00
builtin-trace.c
perf trace: Let the perf_evlist__mmap autosize the number of pages to use
2014-12-16 13:38:26 -03:00
builtin.h
command-list.txt
CREDITS
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: Adopt fls_long and deps
2014-12-17 11:58:08 -03:00
MANIFEST
tools: Adopt fls_long and deps
2014-12-17 11:58:08 -03:00
perf-archive.sh
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: Make CPUINFO_PROC an array to support different kernel versions
2014-10-29 10:27:36 -02: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