diff --git a/llvm/test/ObjectYAML/MachO/DWARF-pubsections.yaml b/llvm/test/ObjectYAML/MachO/DWARF-pubsections.yaml index 47cadc7d9577..9056af923b86 100644 --- a/llvm/test/ObjectYAML/MachO/DWARF-pubsections.yaml +++ b/llvm/test/ObjectYAML/MachO/DWARF-pubsections.yaml @@ -1,491 +1,237 @@ ## This file contains test cases for generating .debug_pubnames/.debug_pubtypes ## section in object files from the DWARF entry of Mach-O YAML inputs ## a) Test that yaml2obj emits the .debug_pubnames and .debug_pubtypes sections and ## obj2yaml converts them back. # RUN: yaml2obj %s | obj2yaml | FileCheck %s --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x01000007 cpusubtype: 0x00000003 filetype: 0x0000000A - ncmds: 5 + ncmds: 1 sizeofcmds: 1800 flags: 0x00000000 reserved: 0x00000000 LoadCommands: - cmd: LC_SEGMENT_64 - cmdsize: 72 - segname: __PAGEZERO + cmdsize: 232 + segname: __DWARF vmaddr: 0 - vmsize: 4294967296 - fileoff: 0 - filesize: 0 + vmsize: 0 + fileoff: 152 + filesize: 0xffff maxprot: 0 initprot: 0 - nsects: 0 - flags: 0 - - cmd: LC_SEGMENT_64 - cmdsize: 472 - segname: __TEXT - vmaddr: 4294967296 - vmsize: 4096 - fileoff: 0 - filesize: 0 - maxprot: 7 - initprot: 5 - nsects: 5 - flags: 0 - Sections: - - sectname: __text - segname: __TEXT - addr: 0x0000000100000F50 - size: 52 - offset: 0x00000000 - align: 4 - reloff: 0x00000000 - nreloc: 0 - flags: 0x80000400 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __stubs - segname: __TEXT - addr: 0x0000000100000F84 - size: 6 - offset: 0x00000000 - align: 1 - reloff: 0x00000000 - nreloc: 0 - flags: 0x80000408 - reserved1: 0x00000000 - reserved2: 0x00000006 - reserved3: 0x00000000 - - sectname: __stub_helper - segname: __TEXT - addr: 0x0000000100000F8C - size: 26 - offset: 0x00000000 - align: 2 - reloff: 0x00000000 - nreloc: 0 - flags: 0x80000400 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __cstring - segname: __TEXT - addr: 0x0000000100000FA6 - size: 14 - offset: 0x00000000 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000002 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __unwind_info - segname: __TEXT - addr: 0x0000000100000FB4 - size: 72 - offset: 0x00000000 - align: 2 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - cmd: LC_SEGMENT_64 - cmdsize: 232 - segname: __DATA - vmaddr: 4294971392 - vmsize: 4096 - fileoff: 0 - filesize: 0 - maxprot: 7 - initprot: 3 nsects: 2 flags: 0 Sections: - - sectname: __nl_symbol_ptr - segname: __DATA - addr: 0x0000000100001000 - size: 16 - offset: 0x00000000 - align: 3 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000006 - reserved1: 0x00000001 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __la_symbol_ptr - segname: __DATA - addr: 0x0000000100001010 - size: 8 - offset: 0x00000000 - align: 3 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000007 - reserved1: 0x00000003 - reserved2: 0x00000000 - reserved3: 0x00000000 - - cmd: LC_SEGMENT_64 - cmdsize: 72 - segname: __LINKEDIT - vmaddr: 4294975488 - vmsize: 4096 - fileoff: 4096 - filesize: 60 - maxprot: 7 - initprot: 1 - nsects: 0 - flags: 0 - - cmd: LC_SEGMENT_64 - cmdsize: 952 - segname: __DWARF - vmaddr: 4294979584 - vmsize: 4096 - fileoff: 8192 - filesize: 764 - maxprot: 7 - initprot: 3 - nsects: 11 - flags: 0 - Sections: - - sectname: __debug_line - segname: __DWARF - addr: 0x0000000100003000 - size: 69 - offset: 0x00002000 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __debug_pubnames - segname: __DWARF - addr: 0x0000000100003045 - size: 27 - offset: 0x00002045 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __debug_pubtypes - segname: __DWARF - addr: 0x0000000100003060 - size: 35 - offset: 0x00002060 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __debug_info - segname: __DWARF - addr: 0x00000001000030B3 - size: 121 - offset: 0x000020B3 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __debug_abbrev - segname: __DWARF - addr: 0x000000010000312C - size: 76 - offset: 0x0000212C - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __debug_str - segname: __DWARF - addr: 0x0000000100003178 - size: 142 - offset: 0x00002178 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __apple_names - segname: __DWARF - addr: 0x0000000100003206 - size: 60 - offset: 0x00002206 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __apple_namespac - segname: __DWARF - addr: 0x0000000100003242 - size: 36 - offset: 0x00002242 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __apple_types - segname: __DWARF - addr: 0x0000000100003266 - size: 114 - offset: 0x00002266 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 - - sectname: __apple_objc - segname: __DWARF - addr: 0x00000001000032D8 - size: 36 - offset: 0x000022D8 - align: 0 - reloff: 0x00000000 - nreloc: 0 - flags: 0x00000000 - reserved1: 0x00000000 - reserved2: 0x00000000 - reserved3: 0x00000000 -LinkEditData: - NameList: - - n_strx: 2 - n_type: 0x0F - n_sect: 1 - n_desc: 16 - n_value: 4294967296 - - n_strx: 22 - n_type: 0x0F - n_sect: 1 - n_desc: 0 - n_value: 4294971216 - StringTable: - - '' - - '' - - __mh_execute_header - - _main + - sectname: __debug_pubnames + segname: __DWARF + addr: 0x0000000000000000 + size: 27 + offset: 0x00000152 + align: 0 + reloff: 0x00000000 + nreloc: 0 + flags: 0x00000000 + reserved1: 0x00000000 + reserved2: 0x00000000 + reserved3: 0x00000000 + - sectname: __debug_pubtypes + segname: __DWARF + addr: 0x0000000000000000 + size: 35 + offset: 0x00000720 + align: 0 + reloff: 0x00000000 + nreloc: 0 + flags: 0x00000000 + reserved1: 0x00000000 + reserved2: 0x00000000 + reserved3: 0x00000000 DWARF: - debug_str: - - '' - - 'clang version 4.0.0 (trunk 288923) (llvm/trunk 288991)' - - hello_world.c - - /Users/cbieneman/dev/open-source/llvm-build-rel - - main - - argc - - argv - - int - - char debug_pubnames: Length: 23 Version: 2 UnitOffset: 0 UnitSize: 121 Entries: - DieOffset: 0x0000002A Name: main debug_pubtypes: Length: 31 Version: 2 UnitOffset: 0 UnitSize: 121 Entries: - DieOffset: 0x00000060 Name: int - DieOffset: 0x00000071 Name: char -... # CHECK: DWARF: # CHECK: debug_pubnames: # CHECK-NEXT: Length: 0x0000000000000017 # CHECK-NEXT: Version: 2 # CHECK-NEXT: UnitOffset: 0 # CHECK-NEXT: UnitSize: 121 # CHECK-NEXT: Entries: # CHECK-NEXT: - DieOffset: 0x0000002A # CHECK-NEXT: Name: main # CHECK-NEXT: debug_pubtypes: # CHECK-NEXT: Length: 0x000000000000001F # CHECK-NEXT: Version: 2 # CHECK-NEXT: UnitOffset: 0 # CHECK-NEXT: UnitSize: 121 # CHECK-NEXT: Entries: # CHECK-NEXT: - DieOffset: 0x00000060 # CHECK-NEXT: Name: int # CHECK-NEXT: - DieOffset: 0x00000071 # CHECK-NEXT: Name: char # CHECK-NEXT: ... ## b) Test that yaml2obj will not emit the .debug_pubnames/.debug_pubtypes section's ## contents, if the "debug_pubnames"/"debug_pubtypes" entry doesn't exist in the ## "DWARF" entry. # RUN: yaml2obj --docnum=2 %s -o %t2 # RUN: obj2yaml %t2 | FileCheck %s --check-prefix=EMPTY # EMPTY: Sections: # EMPTY-NEXT: - sectname: __debug_pubnames # EMPTY-NEXT: segname: __DWARF # EMPTY-NEXT: addr: 0x0000000000000000 # EMPTY-NEXT: size: 0 # EMPTY-NEXT: offset: 0x00000000 # EMPTY-NEXT: align: 0 # EMPTY-NEXT: reloff: 0x00000000 # EMPTY-NEXT: nreloc: 0 # EMPTY-NEXT: flags: 0x00000000 # EMPTY-NEXT: reserved1: 0x00000000 # EMPTY-NEXT: reserved2: 0x00000000 # EMPTY-NEXT: reserved3: 0x00000000 # EMPTY-NEXT: - sectname: __debug_pubtypes # EMPTY-NEXT: segname: __DWARF # EMPTY-NEXT: addr: 0x0000000000000000 # EMPTY-NEXT: size: 0 # EMPTY-NEXT: offset: 0x00000720 # EMPTY-NEXT: align: 0 # EMPTY-NEXT: reloff: 0x00000000 # EMPTY-NEXT: nreloc: 0 # EMPTY-NEXT: flags: 0x00000000 # EMPTY-NEXT: reserved1: 0x00000000 # EMPTY-NEXT: reserved2: 0x00000000 # EMPTY-NEXT: reserved3: 0x00000000 # EMPTY-NEXT: ... --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x01000007 cpusubtype: 0x00000003 filetype: 0x0000000A ncmds: 1 sizeofcmds: 1772 flags: 0x00000000 reserved: 0x00000000 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 232 segname: __DWARF vmaddr: 0x00000000 vmsize: 0x00000000 fileoff: 0 filesize: 0 maxprot: 0 initprot: 0 nsects: 2 flags: 0 Sections: - sectname: __debug_pubnames segname: __DWARF addr: 0x0000000000000000 size: 0 offset: 0x00000000 align: 0 reloff: 0x00000000 nreloc: 0 flags: 0x00000000 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 - sectname: __debug_pubtypes segname: __DWARF addr: 0x0000000000000000 size: 0 offset: 0x00000720 align: 0 reloff: 0x00000000 nreloc: 0 flags: 0x00000000 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 DWARF: ## c) Test that obj2yaml is able to dump a __debug_pubnames section whose length field is greater than the section size. # RUN: yaml2obj --docnum=3 %s | obj2yaml | FileCheck %s --check-prefix=INVALID-LENGTH # INVALID-LENGTH: DWARF: # INVALID-LENGTH-NEXT: debug_pubnames: # INVALID-LENGTH-NEXT: Length: 0x00000000DEADBEEF # INVALID-LENGTH-NEXT: Version: 2 # INVALID-LENGTH-NEXT: UnitOffset: 0 # INVALID-LENGTH-NEXT: UnitSize: 121 # INVALID-LENGTH-NEXT: Entries: # INVALID-LENGTH-NEXT: - DieOffset: 0x0000002A # INVALID-LENGTH-NEXT: Name: main --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x01000007 cpusubtype: 0x00000003 filetype: 0x0000000A ncmds: 1 sizeofcmds: 1888 flags: 0x00000000 reserved: 0x00000000 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 152 segname: __DWARF vmaddr: 0x00000000 vmsize: 0x00000000 fileoff: 0 filesize: 0xffff maxprot: 0 initprot: 0 nsects: 1 flags: 0 Sections: - sectname: __debug_pubnames segname: __DWARF addr: 0x0000000000000000 size: 24 offset: 0x000000b8 align: 0 reloff: 0x00000000 nreloc: 0 flags: 0x00000000 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 DWARF: debug_pubnames: Length: 0xdeadbeef Version: 2 UnitOffset: 0 UnitSize: 121 Entries: - DieOffset: 0x0000002A Name: main