• Namhyung Kim's avatar
    perf hists browser: Fix segfault when showing callchain · c09e31cc
    Namhyung Kim authored
    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: default avatarNamhyung Kim <namhyung@kernel.org>
    Fixes: 4087d11c ("perf hists browser: Print overhead percent value for first-level callchain")
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/1419401076-21700-1-git-send-email-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    c09e31cc
hists.c 51 KB