diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-02-23 09:08:59 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-02-23 10:13:39 -0500 |
commit | 170ae6bc24e1d7f9bd921a484ec9ea2825497970 (patch) | |
tree | 1bb087d36ced6cca9beabee151f8095617ebfd48 /tools/perf/util/annotate.c | |
parent | 9848caf26dafefcec7881f0e3c35fc81c454ba59 (diff) |
perf annotate: Show better message when no vmlinux is found
In both --tui and --stdio, in 'annotate', 'top', 'report' when trying to
annotate a kernel symbol having just access to a kallsyms file, that
doesn't have the DWARF info needed for annotation.
Suggested-by: Ingo Molnar <mingo@elte.hu>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/annotate.c')
-rw-r--r-- | tools/perf/util/annotate.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 70ec422ddb64..0d0830c98cd7 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c | |||
@@ -295,12 +295,23 @@ fallback: | |||
295 | } | 295 | } |
296 | 296 | ||
297 | if (dso->origin == DSO__ORIG_KERNEL) { | 297 | if (dso->origin == DSO__ORIG_KERNEL) { |
298 | char bf[BUILD_ID_SIZE * 2 + 16] = " with build id "; | ||
299 | char *build_id_msg = NULL; | ||
300 | |||
298 | if (dso->annotate_warned) | 301 | if (dso->annotate_warned) |
299 | goto out_free_filename; | 302 | goto out_free_filename; |
303 | |||
304 | if (dso->has_build_id) { | ||
305 | build_id__sprintf(dso->build_id, | ||
306 | sizeof(dso->build_id), bf + 15); | ||
307 | build_id_msg = bf; | ||
308 | } | ||
300 | err = -ENOENT; | 309 | err = -ENOENT; |
301 | dso->annotate_warned = 1; | 310 | dso->annotate_warned = 1; |
302 | pr_err("Can't annotate %s: No vmlinux file was found in the " | 311 | pr_err("Can't annotate %s: No vmlinux file%s was found in the " |
303 | "path\n", sym->name); | 312 | "path.\nPlease use 'perf buildid-cache -av vmlinux' or " |
313 | "--vmlinux vmlinux.\n", | ||
314 | sym->name, build_id_msg ?: ""); | ||
304 | goto out_free_filename; | 315 | goto out_free_filename; |
305 | } | 316 | } |
306 | 317 | ||