From 9b06897009dc32313354559c969d6cf0a564ec06 Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Mon, 25 Nov 2019 14:33:25 +0100 Subject: [PATCH] [lldb/symbolvendorelf] Copy more sections from separate debug files Include the fancier DWARF5 sections too. --- .../Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp | 19 +++--- lldb/test/Shell/ObjectFile/ELF/build-id-case.yaml | 74 +++++++++++++++++++++- 2 files changed, 83 insertions(+), 10 deletions(-) diff --git a/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp b/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp index e61e5763..d4d7a89 100644 --- a/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp +++ b/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp @@ -119,14 +119,17 @@ SymbolVendorELF::CreateInstance(const lldb::ModuleSP &module_sp, SectionList *objfile_section_list = dsym_objfile_sp->GetSectionList(); static const SectionType g_sections[] = { - eSectionTypeDWARFDebugAbbrev, eSectionTypeDWARFDebugAddr, - eSectionTypeDWARFDebugAranges, eSectionTypeDWARFDebugCuIndex, - eSectionTypeDWARFDebugFrame, eSectionTypeDWARFDebugInfo, - eSectionTypeDWARFDebugLine, eSectionTypeDWARFDebugLoc, - eSectionTypeDWARFDebugMacInfo, eSectionTypeDWARFDebugPubNames, - eSectionTypeDWARFDebugPubTypes, eSectionTypeDWARFDebugRanges, - eSectionTypeDWARFDebugStr, eSectionTypeDWARFDebugStrOffsets, - eSectionTypeELFSymbolTable, eSectionTypeDWARFGNUDebugAltLink, + eSectionTypeDWARFDebugAbbrev, eSectionTypeDWARFDebugAddr, + eSectionTypeDWARFDebugAranges, eSectionTypeDWARFDebugCuIndex, + eSectionTypeDWARFDebugFrame, eSectionTypeDWARFDebugInfo, + eSectionTypeDWARFDebugLine, eSectionTypeDWARFDebugLineStr, + eSectionTypeDWARFDebugLoc, eSectionTypeDWARFDebugLocLists, + eSectionTypeDWARFDebugMacInfo, eSectionTypeDWARFDebugMacro, + eSectionTypeDWARFDebugNames, eSectionTypeDWARFDebugPubNames, + eSectionTypeDWARFDebugPubTypes, eSectionTypeDWARFDebugRanges, + eSectionTypeDWARFDebugRngLists, eSectionTypeDWARFDebugStr, + eSectionTypeDWARFDebugStrOffsets, eSectionTypeDWARFDebugTypes, + eSectionTypeELFSymbolTable, eSectionTypeDWARFGNUDebugAltLink, }; for (SectionType section_type : g_sections) { if (SectionSP section_sp = diff --git a/lldb/test/Shell/ObjectFile/ELF/build-id-case.yaml b/lldb/test/Shell/ObjectFile/ELF/build-id-case.yaml index f9786b3..0836605 100644 --- a/lldb/test/Shell/ObjectFile/ELF/build-id-case.yaml +++ b/lldb/test/Shell/ObjectFile/ELF/build-id-case.yaml @@ -4,8 +4,25 @@ # RUN: llvm-objcopy --strip-all %t/.build-id/1b/8a73ac238390e32a7ff4ac8ebe4d6a41ecf5c9.debug %t/stripped.out # RUN: lldb-test object-file %t/stripped.out | FileCheck %s +# CHECK: Name: .debug_abbrev +# CHECK: Name: .debug_addr +# CHECK: Name: .debug_aranges # CHECK: Name: .debug_frame -# CHECK-NEXT: Type: dwarf-frame +# CHECK: Name: .debug_info +# CHECK: Name: .debug_line +# CHECK: Name: .debug_line_str +# CHECK: Name: .debug_loc +# CHECK: Name: .debug_loclists +# CHECK: Name: .debug_macinfo +# CHECK: Name: .debug_macro +# CHECK: Name: .debug_names +# CHECK: Name: .debug_pubnames +# CHECK: Name: .debug_pubtypes +# CHECK: Name: .debug_ranges +# CHECK: Name: .debug_rnglists +# CHECK: Name: .debug_str +# CHECK: Name: .debug_str_offsets +# CHECK: Name: .debug_types --- !ELF FileHeader: @@ -27,9 +44,62 @@ Sections: Address: 0x00000000004003D0 AddressAlign: 0x0000000000000010 Content: DEADBEEFBAADF00D + - Name: .debug_abbrev + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_addr + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_aranges + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D - Name: .debug_frame Type: SHT_PROGBITS - AddressAlign: 0x0000000000000008 + Content: DEADBEEFBAADF00D + - Name: .debug_info + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_line + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_line_str + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_loc + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_loclists + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_macinfo + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_macro + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_names + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_pubnames + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_pubtypes + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_ranges + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_rnglists + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_str + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_str_offsets + Type: SHT_PROGBITS + Content: DEADBEEFBAADF00D + - Name: .debug_types + Type: SHT_PROGBITS Content: DEADBEEFBAADF00D Symbols: - Name: main -- 2.7.4