diff options
| author | Namhyung Kim <namhyung.kim@lge.com> | 2013-03-25 18:18:18 +0900 | 
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-03-26 16:38:21 -0300 | 
| commit | 328ccdace8855289ad114b70ee1464ba5e3f6436 (patch) | |
| tree | 66c2f0abe8ab330b3e2213046bf8f4eb454c20e4 /tools | |
| parent | 12c08a9f591aeda57fb3b05897169e7da5439a79 (diff) | |
| download | olio-linux-3.10-328ccdace8855289ad114b70ee1464ba5e3f6436.tar.xz olio-linux-3.10-328ccdace8855289ad114b70ee1464ba5e3f6436.zip | |
perf report: Add --no-demangle option
It's sometimes useful to see undemangled raw symbol name for example
other tools using the perf output to do manipulation of binaries.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Suggested-by: William Cohen <wcohen@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: William Cohen <wcohen@redhat.com>
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=55571
Link: http://lkml.kernel.org/r/1364203098-17741-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/perf/Documentation/perf-report.txt | 4 | ||||
| -rw-r--r-- | tools/perf/builtin-report.c | 2 | ||||
| -rw-r--r-- | tools/perf/util/symbol-elf.c | 9 | ||||
| -rw-r--r-- | tools/perf/util/symbol.c | 1 | ||||
| -rw-r--r-- | tools/perf/util/symbol.h | 3 | 
5 files changed, 15 insertions, 4 deletions
| diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt index 02284a0067f..71f15510ca0 100644 --- a/tools/perf/Documentation/perf-report.txt +++ b/tools/perf/Documentation/perf-report.txt @@ -206,6 +206,10 @@ OPTIONS  --group::  	Show event group information together. +--demangle:: +	Demangle symbol names to human readable form. It's enabled by default, +	disable with --no-demangle. +  SEE ALSO  --------  linkperf:perf-stat[1], linkperf:perf-annotate[1] diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 296bd219977..b5ea26cc7eb 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -692,6 +692,8 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)  		    "use branch records for histogram filling", parse_branch_mode),  	OPT_STRING(0, "objdump", &objdump_path, "path",  		   "objdump binary to use for disassembly and annotations"), +	OPT_BOOLEAN(0, "demangle", &symbol_conf.demangle, +		    "Disable symbol demangling"),  	OPT_END()  	}; diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index 54efcb5659a..4b12bf85032 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -806,9 +806,12 @@ int dso__load_sym(struct dso *dso, struct map *map,  		 * DWARF DW_compile_unit has this, but we don't always have access  		 * to it...  		 */ -		demangled = bfd_demangle(NULL, elf_name, DMGL_PARAMS | DMGL_ANSI); -		if (demangled != NULL) -			elf_name = demangled; +		if (symbol_conf.demangle) { +			demangled = bfd_demangle(NULL, elf_name, +						 DMGL_PARAMS | DMGL_ANSI); +			if (demangled != NULL) +				elf_name = demangled; +		}  new_symbol:  		f = symbol__new(sym.st_value, sym.st_size,  				GELF_ST_BIND(sym.st_info), elf_name); diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index e6432d85b43..8cf3b5426a9 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -36,6 +36,7 @@ struct symbol_conf symbol_conf = {  	.use_modules	  = true,  	.try_vmlinux_path = true,  	.annotate_src	  = true, +	.demangle	  = true,  	.symfs            = "",  }; diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h index b62ca37c4b7..d7654c23861 100644 --- a/tools/perf/util/symbol.h +++ b/tools/perf/util/symbol.h @@ -97,7 +97,8 @@ struct symbol_conf {  			kptr_restrict,  			annotate_asm_raw,  			annotate_src, -			event_group; +			event_group, +			demangle;  	const char	*vmlinux_name,  			*kallsyms_name,  			*source_prefix, |