diff options
| -rw-r--r-- | lldb/include/lldb/lldb-enumerations.h | 1 | ||||
| -rw-r--r-- | lldb/lit/Modules/elf-section-types.yaml | 9 | ||||
| -rw-r--r-- | lldb/source/Core/Section.cpp | 2 | ||||
| -rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 3 | ||||
| -rw-r--r-- | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp | 4 | ||||
| -rw-r--r-- | lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp | 3 | ||||
| -rw-r--r-- | lldb/source/Symbol/ObjectFile.cpp | 1 | 
7 files changed, 23 insertions, 0 deletions
diff --git a/lldb/include/lldb/lldb-enumerations.h b/lldb/include/lldb/lldb-enumerations.h index 7e047f2a986..8cce1358a07 100644 --- a/lldb/include/lldb/lldb-enumerations.h +++ b/lldb/include/lldb/lldb-enumerations.h @@ -657,6 +657,7 @@ enum SectionType {                                 // address    eSectionTypeDWARFGNUDebugAltLink,    eSectionTypeDWARFDebugTypes, // DWARF .debug_types section +  eSectionTypeDWARFDebugNames, // DWARF v5 .debug_names    eSectionTypeOther  }; diff --git a/lldb/lit/Modules/elf-section-types.yaml b/lldb/lit/Modules/elf-section-types.yaml index c1b9490eb63..a8aa5c80a48 100644 --- a/lldb/lit/Modules/elf-section-types.yaml +++ b/lldb/lit/Modules/elf-section-types.yaml @@ -14,6 +14,11 @@  # CHECK-NEXT: VM size: 0  # CHECK-NEXT: File size: 8 +# CHECK: Name: .debug_names +# CHECK-NEXT: Type: dwarf-names +# CHECK-NEXT: VM size: 0 +# CHECK-NEXT: File size: 8 +  # CHECK: Name: .gnu_debugaltlink  # CHECK-NEXT: Type: dwarf-gnu-debugaltlink  # CHECK-NEXT: VM size: 0 @@ -42,6 +47,10 @@ Sections:      Type:            SHT_PROGBITS      AddressAlign:    0x0000000000000001      Content:         DEADBEEFBAADF00D +  - Name:            .debug_names +    Type:            SHT_PROGBITS +    AddressAlign:    0x0000000000000001 +    Content:         DEADBEEFBAADF00D    - Name:            .gnu_debugaltlink      Type:            SHT_PROGBITS      AddressAlign:    0x0000000000000001 diff --git a/lldb/source/Core/Section.cpp b/lldb/source/Core/Section.cpp index 16b74db6df9..d9c5d32ee13 100644 --- a/lldb/source/Core/Section.cpp +++ b/lldb/source/Core/Section.cpp @@ -91,6 +91,8 @@ const char *Section::GetTypeAsCString() const {      return "dwarf-str-offsets";    case eSectionTypeDWARFDebugTypes:      return "dwarf-types"; +  case eSectionTypeDWARFDebugNames: +    return "dwarf-names";    case eSectionTypeELFSymbolTable:      return "elf-symbol-table";    case eSectionTypeELFDynamicSymbols: diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp index 84e74628bd8..dc48c258189 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -1791,6 +1791,7 @@ void ObjectFileELF::CreateSections(SectionList &unified_section_list) {        static ConstString g_sect_name_dwarf_debug_loc(".debug_loc");        static ConstString g_sect_name_dwarf_debug_macinfo(".debug_macinfo");        static ConstString g_sect_name_dwarf_debug_macro(".debug_macro"); +      static ConstString g_sect_name_dwarf_debug_names(".debug_names");        static ConstString g_sect_name_dwarf_debug_pubnames(".debug_pubnames");        static ConstString g_sect_name_dwarf_debug_pubtypes(".debug_pubtypes");        static ConstString g_sect_name_dwarf_debug_ranges(".debug_ranges"); @@ -1866,6 +1867,8 @@ void ObjectFileELF::CreateSections(SectionList &unified_section_list) {          sect_type = eSectionTypeDWARFDebugMacInfo;        else if (name == g_sect_name_dwarf_debug_macro)          sect_type = eSectionTypeDWARFDebugMacro; +      else if (name == g_sect_name_dwarf_debug_names) +        sect_type = eSectionTypeDWARFDebugNames;        else if (name == g_sect_name_dwarf_debug_pubnames)          sect_type = eSectionTypeDWARFDebugPubNames;        else if (name == g_sect_name_dwarf_debug_pubtypes) diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp index e006d18c1aa..d7ca32427aa 100644 --- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp +++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp @@ -1200,6 +1200,7 @@ AddressClass ObjectFileMachO::GetAddressClass(lldb::addr_t file_addr) {            case eSectionTypeDWARFDebugLoc:            case eSectionTypeDWARFDebugMacInfo:            case eSectionTypeDWARFDebugMacro: +          case eSectionTypeDWARFDebugNames:            case eSectionTypeDWARFDebugPubNames:            case eSectionTypeDWARFDebugPubTypes:            case eSectionTypeDWARFDebugRanges: @@ -1455,6 +1456,7 @@ static lldb::SectionType GetSectionType(uint32_t flags,    static ConstString g_sect_name_dwarf_debug_line("__debug_line");    static ConstString g_sect_name_dwarf_debug_loc("__debug_loc");    static ConstString g_sect_name_dwarf_debug_macinfo("__debug_macinfo"); +  static ConstString g_sect_name_dwarf_debug_names("__debug_names");    static ConstString g_sect_name_dwarf_debug_pubnames("__debug_pubnames");    static ConstString g_sect_name_dwarf_debug_pubtypes("__debug_pubtypes");    static ConstString g_sect_name_dwarf_debug_ranges("__debug_ranges"); @@ -1484,6 +1486,8 @@ static lldb::SectionType GetSectionType(uint32_t flags,      return eSectionTypeDWARFDebugLoc;    if (section_name == g_sect_name_dwarf_debug_macinfo)      return eSectionTypeDWARFDebugMacInfo; +  if (section_name == g_sect_name_dwarf_debug_names) +    return eSectionTypeDWARFDebugNames;    if (section_name == g_sect_name_dwarf_debug_pubnames)      return eSectionTypeDWARFDebugPubNames;    if (section_name == g_sect_name_dwarf_debug_pubtypes) diff --git a/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp b/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp index 30b7fedcdda..b2967f1532a 100644 --- a/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp +++ b/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp @@ -692,6 +692,7 @@ void ObjectFilePECOFF::CreateSections(SectionList &unified_section_list) {          static ConstString g_sect_name_dwarf_debug_line(".debug_line");          static ConstString g_sect_name_dwarf_debug_loc(".debug_loc");          static ConstString g_sect_name_dwarf_debug_macinfo(".debug_macinfo"); +        static ConstString g_sect_name_dwarf_debug_names(".debug_names");          static ConstString g_sect_name_dwarf_debug_pubnames(".debug_pubnames");          static ConstString g_sect_name_dwarf_debug_pubtypes(".debug_pubtypes");          static ConstString g_sect_name_dwarf_debug_ranges(".debug_ranges"); @@ -737,6 +738,8 @@ void ObjectFilePECOFF::CreateSections(SectionList &unified_section_list) {            section_type = eSectionTypeDWARFDebugLoc;          else if (const_sect_name == g_sect_name_dwarf_debug_macinfo)            section_type = eSectionTypeDWARFDebugMacInfo; +        else if (const_sect_name == g_sect_name_dwarf_debug_names) +          section_type = eSectionTypeDWARFDebugNames;          else if (const_sect_name == g_sect_name_dwarf_debug_pubnames)            section_type = eSectionTypeDWARFDebugPubNames;          else if (const_sect_name == g_sect_name_dwarf_debug_pubtypes) diff --git a/lldb/source/Symbol/ObjectFile.cpp b/lldb/source/Symbol/ObjectFile.cpp index f558153b5bb..68a5058670b 100644 --- a/lldb/source/Symbol/ObjectFile.cpp +++ b/lldb/source/Symbol/ObjectFile.cpp @@ -353,6 +353,7 @@ AddressClass ObjectFile::GetAddressClass(addr_t file_addr) {            case eSectionTypeDWARFDebugLoc:            case eSectionTypeDWARFDebugMacInfo:            case eSectionTypeDWARFDebugMacro: +          case eSectionTypeDWARFDebugNames:            case eSectionTypeDWARFDebugPubNames:            case eSectionTypeDWARFDebugPubTypes:            case eSectionTypeDWARFDebugRanges:  | 

