Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf revert from Ingo Molnar: "This fixes the 'perf top' regression Markus Trippelsdorf reported" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: Revert "perf symbols: Demangle cloned functions"
This commit is contained in:
Коммит
cac6653529
|
@ -928,33 +928,8 @@ int dso__load_sym(struct dso *dso, struct map *map,
|
|||
* to it...
|
||||
*/
|
||||
if (symbol_conf.demangle) {
|
||||
/*
|
||||
* The demangler doesn't deal with cloned functions.
|
||||
* XXXX.clone.NUM or similar
|
||||
* Strip the dot part and readd it later.
|
||||
*/
|
||||
char *p = (char *)elf_name, *dot;
|
||||
dot = strchr(elf_name, '.');
|
||||
if (dot) {
|
||||
p = strdup(elf_name);
|
||||
if (!p)
|
||||
goto new_symbol;
|
||||
dot = strchr(p, '.');
|
||||
*dot = 0;
|
||||
}
|
||||
|
||||
demangled = bfd_demangle(NULL, p,
|
||||
demangled = bfd_demangle(NULL, elf_name,
|
||||
DMGL_PARAMS | DMGL_ANSI);
|
||||
if (dot)
|
||||
*dot = '.';
|
||||
if (demangled && dot) {
|
||||
demangled = realloc(demangled, strlen(demangled) + strlen(dot) + 1);
|
||||
if (!demangled)
|
||||
goto new_symbol;
|
||||
strcpy(demangled + (dot - p), dot);
|
||||
}
|
||||
if (p != elf_name)
|
||||
free(p);
|
||||
if (demangled != NULL)
|
||||
elf_name = demangled;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче