perf tools: Support --prefix/--prefix-strip
The objdump utility has useful --prefix / --prefix-strip options to allow changing source code file names hardcoded into executables' debug info. Add options to 'perf report', 'perf top' and 'perf annotate', which are then passed to objdump. $ mkdir foo $ echo 'main() { for (;;); }' > foo/foo.c $ gcc -g foo/foo.c foo/foo.c:1:1: warning: return type defaults to ‘int’ [-Wimplicit-int] 1 | main() { for (;;); } | ^~~~ $ perf record ./a.out ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.230 MB perf.data (5721 samples) ] $ mv foo bar $ perf annotate <does not show source code> $ perf annotate --prefix=/home/ak/lsrc/git/bar --prefix-strip=5 <does show source code> Signed-off-by: Andi Kleen <ak@linux.intel.com> Tested-by: Jiri Olsa <jolsa@redhat.com> LPU-Reference: 20200107210444.214071-1-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
aa9d1f8334
commit
3b0b16bf8c
@@ -94,6 +94,8 @@ struct annotation_options {
|
||||
int context;
|
||||
const char *objdump_path;
|
||||
const char *disassembler_style;
|
||||
const char *prefix;
|
||||
const char *prefix_strip;
|
||||
unsigned int percent_type;
|
||||
};
|
||||
|
||||
@@ -415,4 +417,7 @@ void annotation_config__init(void);
|
||||
|
||||
int annotate_parse_percent_type(const struct option *opt, const char *_str,
|
||||
int unset);
|
||||
|
||||
int annotate_check_args(struct annotation_options *args);
|
||||
|
||||
#endif /* __PERF_ANNOTATE_H */
|
||||
|
Reference in New Issue
Block a user