llvm-project/llvm/test/Object
Eric Christopher 9cad53cfec Implements low-level object file format specific output for COFF and
ELF with support for:

- File headers
- Section headers + data
- Relocations
- Symbols
- Unwind data (only COFF/Win64)

The output format follows a few rules:
- Values are almost always output one per line (as elf-dump/coff-dump already do). - Many values are translated to something readable (like enum names), with the raw value in parentheses.
- Hex numbers are output in uppercase, prefixed with "0x".
- Flags are sorted alphabetically.
- Lists and groups are always delimited.

Example output:
---------- snip ----------
Sections [
  Section {
    Index: 1
    Name: .text (5)
    Type: SHT_PROGBITS (0x1)
    Flags [ (0x6)
      SHF_ALLOC (0x2)
      SHF_EXECINSTR (0x4)
    ]
    Address: 0x0
    Offset: 0x40
    Size: 33
    Link: 0
    Info: 0
    AddressAlignment: 16
    EntrySize: 0
    Relocations [
      0x6 R_386_32 .rodata.str1.1 0x0
      0xB R_386_PC32 puts 0x0
      0x12 R_386_32 .rodata.str1.1 0x0
      0x17 R_386_PC32 puts 0x0
    ]
    SectionData (
      0000: 83EC04C7 04240000 0000E8FC FFFFFFC7  |.....$..........|
      0010: 04240600 0000E8FC FFFFFF31 C083C404  |.$.........1....|
      0020: C3                                   |.|
    )
  }
]
---------- snip ----------

Relocations and symbols can be output standalone or together with the section header as displayed in the example.
This feature set supports all tests in test/MC/COFF and test/MC/ELF (and I suspect all additional tests using elf-dump), making elf-dump and coff-dump deprecated.

Patch by Nico Rieck!

llvm-svn: 178679
2013-04-03 18:31:38 +00:00
..
ARM When dumping clear the arm/thumb flag for now. 2013-04-03 18:31:12 +00:00
Inputs [Object][ELF] Fix incorrect size of members for the 64 version of Elf_Phdr_Impl. 2013-01-06 03:57:11 +00:00
Mips Implement sectionContainsSymbol for ELF. 2013-04-03 18:31:19 +00:00
X86 Teach MachO which sections contain code 2012-12-17 17:59:32 +00:00
archive-long-index.test [Object][ELF] Add a maximum alignment. This is used by createELFObjectFile to create a properly aligned reader. 2013-01-04 20:36:28 +00:00
coff-archive.test numerically sort the symbols, so that the testcase result is uniform 2012-11-13 21:01:11 +00:00
lit.local.cfg Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
nm-archive.test Change the actual tests to match the input directory rename (duh) 2011-10-31 23:56:52 +00:00
nm-shared-object.test Fix SymbolRef::getAddress implementation for ELF. The 'value' field in symbol table entry should be treated differently for relocatable and relocated files. This patch fixes symbol addresses printed by llvm-nm for executables and shared objects. 2012-09-21 07:08:08 +00:00
nm-trivial-object.test Move test yaml files under Inputs until they are converted to be the actual 2012-08-02 21:52:49 +00:00
objdump-file-header.test Move test yaml files under Inputs until they are converted to be the actual 2012-08-02 21:52:49 +00:00
objdump-private-headers.test [Object][ELF] Fix incorrect size of members for the 64 version of Elf_Phdr_Impl. 2013-01-06 03:57:11 +00:00
objdump-relocations.test Teach libObject about some more ELF relocations. llvm-objdump -r now knows 2012-09-05 23:48:54 +00:00
objdump-section-content.test Move test yaml files under Inputs until they are converted to be the actual 2012-08-02 21:52:49 +00:00
objdump-sectionheaders.test [llvm-objdump] Emit addresses with the correct number of leading 0's. 2013-01-10 22:40:50 +00:00
objdump-symbol-table.test Fix SymbolRef::getAddress implementation for ELF. The 'value' field in symbol table entry should be treated differently for relocatable and relocated files. This patch fixes symbol addresses printed by llvm-nm for executables and shared objects. 2012-09-21 07:08:08 +00:00
readobj-elf-versioning.test Implements low-level object file format specific output for COFF and 2013-04-03 18:31:38 +00:00
readobj-shared-object.test Implements low-level object file format specific output for COFF and 2013-04-03 18:31:38 +00:00
readobj.test [Object][ELF] Fix crash on no dynamic section. 2013-02-07 18:26:45 +00:00
simple-archive.test [Object][ELF] Add a maximum alignment. This is used by createELFObjectFile to create a properly aligned reader. 2013-01-04 20:36:28 +00:00