diff options
author | George Rimar <grimar@accesssoftek.com> | 2018-11-14 10:35:14 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2018-11-14 10:35:14 +0000 |
commit | 98963db57d04d38f154ca37b9c8c768da1697222 (patch) | |
tree | b370beb218f5704b7512d6494fa6bdce7635df4e /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | |
parent | 814e7974c64c977960c4913a117bf59af005865b (diff) | |
download | bcm5719-llvm-98963db57d04d38f154ca37b9c8c768da1697222.tar.gz bcm5719-llvm-98963db57d04d38f154ca37b9c8c768da1697222.zip |
[LLDB] - Support the single file split DWARF.
DWARF5 spec describes a single file split dwarf case
(when .dwo sections are in the .o files).
Problem is that LLDB does not work correctly in that case.
The issue is that, for example, both .debug_info and .debug_info.dwo
has the same type: eSectionTypeDWARFDebugInfo. And when code searches
section by type it might find the regular debug section
and not the .dwo one.
The patch fixes that. With it, LLDB is able to work with
output compiled with -gsplit-dwarf=single flag correctly.
Differential revision: https://reviews.llvm.org/D52296
llvm-svn: 346848
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp')
-rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp index 1001eaef555..efb6a0b85c1 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -1897,9 +1897,9 @@ void ObjectFileELF::CreateSections(SectionList &unified_section_list) { else if (name == g_sect_name_dwarf_debug_str_offsets) sect_type = eSectionTypeDWARFDebugStrOffsets; else if (name == g_sect_name_dwarf_debug_abbrev_dwo) - sect_type = eSectionTypeDWARFDebugAbbrev; + sect_type = eSectionTypeDWARFDebugAbbrevDwo; else if (name == g_sect_name_dwarf_debug_info_dwo) - sect_type = eSectionTypeDWARFDebugInfo; + sect_type = eSectionTypeDWARFDebugInfoDwo; else if (name == g_sect_name_dwarf_debug_line_dwo) sect_type = eSectionTypeDWARFDebugLine; else if (name == g_sect_name_dwarf_debug_line_str_dwo) @@ -1911,9 +1911,9 @@ void ObjectFileELF::CreateSections(SectionList &unified_section_list) { else if (name == g_sect_name_dwarf_debug_loclists_dwo) sect_type = eSectionTypeDWARFDebugLocLists; else if (name == g_sect_name_dwarf_debug_str_dwo) - sect_type = eSectionTypeDWARFDebugStr; + sect_type = eSectionTypeDWARFDebugStrDwo; else if (name == g_sect_name_dwarf_debug_str_offsets_dwo) - sect_type = eSectionTypeDWARFDebugStrOffsets; + sect_type = eSectionTypeDWARFDebugStrOffsetsDwo; else if (name == g_sect_name_eh_frame) sect_type = eSectionTypeEHFrame; else if (name == g_sect_name_arm_exidx) |