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>
This commit is contained in:
		
					parent
					
						
							
								12c08a9f59
							
						
					
				
			
			
				commit
				
					
						328ccdace8
					
				
			
		
					 5 changed files with 15 additions and 4 deletions
				
			
		|  | @ -206,6 +206,10 @@ OPTIONS | ||||||
| --group:: | --group:: | ||||||
| 	Show event group information together. | 	Show event group information together. | ||||||
| 
 | 
 | ||||||
|  | --demangle:: | ||||||
|  | 	Demangle symbol names to human readable form. It's enabled by default, | ||||||
|  | 	disable with --no-demangle. | ||||||
|  | 
 | ||||||
| SEE ALSO | SEE ALSO | ||||||
| -------- | -------- | ||||||
| linkperf:perf-stat[1], linkperf:perf-annotate[1] | linkperf:perf-stat[1], linkperf:perf-annotate[1] | ||||||
|  |  | ||||||
|  | @ -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), | 		    "use branch records for histogram filling", parse_branch_mode), | ||||||
| 	OPT_STRING(0, "objdump", &objdump_path, "path", | 	OPT_STRING(0, "objdump", &objdump_path, "path", | ||||||
| 		   "objdump binary to use for disassembly and annotations"), | 		   "objdump binary to use for disassembly and annotations"), | ||||||
|  | 	OPT_BOOLEAN(0, "demangle", &symbol_conf.demangle, | ||||||
|  | 		    "Disable symbol demangling"), | ||||||
| 	OPT_END() | 	OPT_END() | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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 | 		 * DWARF DW_compile_unit has this, but we don't always have access | ||||||
| 		 * to it... | 		 * to it... | ||||||
| 		 */ | 		 */ | ||||||
| 		demangled = bfd_demangle(NULL, elf_name, DMGL_PARAMS | DMGL_ANSI); | 		if (symbol_conf.demangle) { | ||||||
|  | 			demangled = bfd_demangle(NULL, elf_name, | ||||||
|  | 						 DMGL_PARAMS | DMGL_ANSI); | ||||||
| 			if (demangled != NULL) | 			if (demangled != NULL) | ||||||
| 				elf_name = demangled; | 				elf_name = demangled; | ||||||
|  | 		} | ||||||
| new_symbol: | new_symbol: | ||||||
| 		f = symbol__new(sym.st_value, sym.st_size, | 		f = symbol__new(sym.st_value, sym.st_size, | ||||||
| 				GELF_ST_BIND(sym.st_info), elf_name); | 				GELF_ST_BIND(sym.st_info), elf_name); | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ struct symbol_conf symbol_conf = { | ||||||
| 	.use_modules	  = true, | 	.use_modules	  = true, | ||||||
| 	.try_vmlinux_path = true, | 	.try_vmlinux_path = true, | ||||||
| 	.annotate_src	  = true, | 	.annotate_src	  = true, | ||||||
|  | 	.demangle	  = true, | ||||||
| 	.symfs            = "", | 	.symfs            = "", | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -97,7 +97,8 @@ struct symbol_conf { | ||||||
| 			kptr_restrict, | 			kptr_restrict, | ||||||
| 			annotate_asm_raw, | 			annotate_asm_raw, | ||||||
| 			annotate_src, | 			annotate_src, | ||||||
| 			event_group; | 			event_group, | ||||||
|  | 			demangle; | ||||||
| 	const char	*vmlinux_name, | 	const char	*vmlinux_name, | ||||||
| 			*kallsyms_name, | 			*kallsyms_name, | ||||||
| 			*source_prefix, | 			*source_prefix, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Namhyung Kim
				Namhyung Kim