diff options
Diffstat (limited to 'libunwindstack/Unwinder.cpp')
-rw-r--r-- | libunwindstack/Unwinder.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libunwindstack/Unwinder.cpp b/libunwindstack/Unwinder.cpp index 2734cf8d3..a1c58ddb3 100644 --- a/libunwindstack/Unwinder.cpp +++ b/libunwindstack/Unwinder.cpp @@ -105,6 +105,12 @@ void Unwinder::FillInFrame(MapInfo* map_info, Elf* elf, uint64_t rel_pc, uint64_ if (resolve_names_) { frame->map_name = map_info->name; + if (embedded_soname_ && map_info->elf_start_offset != 0 && !frame->map_name.empty()) { + std::string soname = elf->GetSoname(); + if (!soname.empty()) { + frame->map_name += '!' + soname; + } + } } frame->map_elf_start_offset = map_info->elf_start_offset; frame->map_exact_offset = map_info->offset; |