diff options
author | Jiri Olsa <[email protected]> | 2012-09-10 18:50:16 +0200 |
---|---|---|
committer | Arnaldo Carvalho de Melo <[email protected]> | 2012-09-11 12:01:15 -0300 |
commit | bdde37163e1fd474509aab90f5eaacee46100107 (patch) | |
tree | b02af2b7904946f02ca30952f9d2ed0ca556611b | |
parent | 9ac3e487f0eeef0fa058d72da7681398cc052ee9 (diff) |
perf tools: Do backtrace post unwind only if we regs and stack were captured
Bail out without error if we want to do backtrace post unwind, but were
not able to capture user registers or user stack during the record
phase, which is possible and valid case.
Signed-off-by: Jiri Olsa <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
-rw-r--r-- | tools/perf/util/session.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 3806ea49f1f7..0ecd62be2091 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -388,6 +388,11 @@ int machine__resolve_callchain(struct machine *machine, (evsel->attr.sample_type & PERF_SAMPLE_STACK_USER))) return 0; + /* Bail out if nothing was captured. */ + if ((!sample->user_regs.regs) || + (!sample->user_stack.size)) + return 0; + return unwind__get_entries(unwind_entry, &callchain_cursor, machine, thread, evsel->attr.sample_regs_user, sample); |