perf symbols: Workaround objdump difficulties with kcore
The objdump tool fails to annotate module symbols when looking at kcore. Workaround this by extracting object code from kcore and putting it in a temporary file for objdump to use instead. The temporary file is created to look like kcore but contains only the function being disassembled. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1381320078-16497-3-git-send-email-adrian.hunter@intel.com [ Renamed 'index' to 'idx' to avoid shadowing string.h's 'index' in Fedora 12, Replace local with variable length with malloc/free to fix build in Fedora 12 ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
52afdaf9f0
commit
afba19d9dc
@@ -256,4 +256,18 @@ typedef int (*mapfn_t)(u64 start, u64 len, u64 pgoff, void *data);
|
||||
int file__read_maps(int fd, bool exe, mapfn_t mapfn, void *data,
|
||||
bool *is_64_bit);
|
||||
|
||||
#define PERF_KCORE_EXTRACT "/tmp/perf-kcore-XXXXXX"
|
||||
|
||||
struct kcore_extract {
|
||||
char *kcore_filename;
|
||||
u64 addr;
|
||||
u64 offs;
|
||||
u64 len;
|
||||
char extract_filename[sizeof(PERF_KCORE_EXTRACT)];
|
||||
int fd;
|
||||
};
|
||||
|
||||
int kcore_extract__create(struct kcore_extract *kce);
|
||||
void kcore_extract__delete(struct kcore_extract *kce);
|
||||
|
||||
#endif /* __PERF_SYMBOL */
|
||||
|
Reference in New Issue
Block a user