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
|
@ -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) {
|
||||||
if (demangled != NULL)
|
demangled = bfd_demangle(NULL, elf_name,
|
||||||
elf_name = demangled;
|
DMGL_PARAMS | DMGL_ANSI);
|
||||||
|
if (demangled != NULL)
|
||||||
|
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…
Reference in New Issue