[elf2yaml] Fix dumping a debug section whose name is not recognized.

If the debug section's name isn't recognized, it should be
dumped as a raw content section.

Reviewed By: jhenderson, grimar

Differential Revision: https://reviews.llvm.org/D87346
This commit is contained in:
Xing GUO 2020-09-09 20:06:00 +08:00
parent d4b88ac165
commit 25f3cc0ced
2 changed files with 21 additions and 0 deletions

View File

@ -0,0 +1,19 @@
## Test dumping a debug section when its name is not recognized by obj2yaml.
# RUN: yaml2obj %s | obj2yaml | FileCheck %s
# CHECK: Sections:
# CHECK-NEXT: - Name: .debug_foo
# CHECK-NEXT: Type: SHT_PROGBITS
# CHECK-NEXT: Content: '01020304'
# CHECK-NEXT: ...
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Sections:
- Name: .debug_foo
Type: SHT_PROGBITS
Content: '01020304'

View File

@ -416,6 +416,8 @@ Optional<DWARFYAML::Data> ELFDumper<ELFT>::dumpDWARFSections(
Err = dumpDebugARanges(*DWARFCtx.get(), DWARF);
else if (RawSec->Name == ".debug_str")
Err = dumpDebugStrings(*DWARFCtx.get(), DWARF);
else
continue;
// If the DWARF section cannot be successfully parsed, emit raw content
// instead of an entry in the DWARF section of the YAML.