perf probe: Fix to use symtab only if no debuginfo
Fix perf probe to use symtab only if there is no debuginfo, because debuginfo has more information than symtab. If we can't find a function in debuginfo, we never find it in symtab. Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> LKML-Reference: <20100421195624.24664.46214.stgit@localhost6.localdomain6> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
0ab061cd52
commit
15eca306ec
@@ -180,16 +180,17 @@ static int try_to_find_kprobe_trace_events(struct perf_probe_event *pev,
|
|||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
/* Error path : ntevs < 0 */
|
/* Error path : ntevs < 0 */
|
||||||
if (need_dwarf) {
|
pr_debug("An error occurred in debuginfo analysis (%d).\n", ntevs);
|
||||||
if (ntevs == -EBADF)
|
if (ntevs == -EBADF) {
|
||||||
pr_warning("No dwarf info found in the vmlinux - "
|
pr_warning("Warning: No dwarf info found in the vmlinux - "
|
||||||
"please rebuild with CONFIG_DEBUG_INFO=y.\n");
|
"please rebuild kernel with CONFIG_DEBUG_INFO=y.\n");
|
||||||
return ntevs;
|
if (!need_dwarf) {
|
||||||
}
|
pr_debug("Trying to use symbols.\nn");
|
||||||
pr_debug("An error occurred in debuginfo analysis."
|
|
||||||
" Try to use symbols.\n");
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return ntevs;
|
||||||
|
}
|
||||||
|
|
||||||
#define LINEBUF_SIZE 256
|
#define LINEBUF_SIZE 256
|
||||||
#define NR_ADDITIONAL_LINES 2
|
#define NR_ADDITIONAL_LINES 2
|
||||||
|
Reference in New Issue
Block a user