Skip to content
  • Eric Christopher's avatar
    Implements low-level object file format specific output for COFF and · 9cad53cf
    Eric Christopher authored
    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
    9cad53cf
Loading