diff --git a/libbacktrace/UnwindStack.cpp b/libbacktrace/UnwindStack.cpp index 83a5bb666..e79bca314 100644 --- a/libbacktrace/UnwindStack.cpp +++ b/libbacktrace/UnwindStack.cpp @@ -29,6 +29,7 @@ #endif #include +#include #include #include #include @@ -110,7 +111,9 @@ static bool Unwind(pid_t pid, unwindstack::Memory* memory, unwindstack::Regs* re frame->map.name = map_info->name; uint64_t func_offset = 0; - if (!elf->GetFunctionName(adjusted_rel_pc, &frame->func_name, &func_offset)) { + if (elf->GetFunctionName(adjusted_rel_pc, &frame->func_name, &func_offset)) { + frame->func_name = demangle(frame->func_name.c_str()); + } else { frame->func_name = ""; } frame->func_offset = func_offset;