perf report: Warn on callchain output request from non-callchain file
perf report segfaults while trying to handle callchains from a non callchain data file. Instead of a segfault, print a useful message to the user. Reported-by: Jens Axboe <jens.axboe@oracle.com> Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Anton Blanchard <anton@samba.org> Cc: Jens Axboe <jens.axboe@oracle.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> LKML-Reference: <1246772361-9960-1-git-send-email-fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
a79f0da80a
commit
91b4eaea93
1 changed files with 13 additions and 3 deletions
|
@ -1684,10 +1684,20 @@ static int __cmd_report(void)
|
|||
|
||||
sample_type = perf_header__sample_type();
|
||||
|
||||
if (sort__has_parent && !(sample_type & PERF_SAMPLE_CALLCHAIN)) {
|
||||
fprintf(stderr, "selected --sort parent, but no callchain data\n");
|
||||
if (!(sample_type & PERF_SAMPLE_CALLCHAIN)) {
|
||||
if (sort__has_parent) {
|
||||
fprintf(stderr, "selected --sort parent, but no"
|
||||
" callchain data. Did you call"
|
||||
" perf record without -g?\n");
|
||||
exit(-1);
|
||||
}
|
||||
if (callchain) {
|
||||
fprintf(stderr, "selected -c but no callchain data."
|
||||
" Did you call perf record without"
|
||||
" -g?\n");
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
if (load_kernel() < 0) {
|
||||
perror("failed to load kernel symbols");
|
||||
|
|
Loading…
Reference in a new issue