2020-05-29 13:56:32 +02:00
|
|
|
## 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.
|
|
|
|
|
2016-12-19 23:22:12 +01:00
|
|
|
# RUN: yaml2obj %s | obj2yaml | FileCheck %s
|
|
|
|
|
|
|
|
--- !mach-o
|
|
|
|
FileHeader:
|
|
|
|
magic: 0xFEEDFACF
|
|
|
|
cputype: 0x01000007
|
|
|
|
cpusubtype: 0x00000003
|
|
|
|
filetype: 0x0000000A
|
|
|
|
ncmds: 5
|
|
|
|
sizeofcmds: 1800
|
|
|
|
flags: 0x00000000
|
|
|
|
reserved: 0x00000000
|
|
|
|
LoadCommands:
|
|
|
|
- cmd: LC_SEGMENT_64
|
|
|
|
cmdsize: 72
|
|
|
|
segname: __PAGEZERO
|
|
|
|
vmaddr: 0
|
|
|
|
vmsize: 4294967296
|
|
|
|
fileoff: 0
|
|
|
|
filesize: 0
|
|
|
|
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
|
|
|
|
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:
|
2017-03-03 22:11:55 +01:00
|
|
|
Length:
|
|
|
|
TotalLength: 23
|
2016-12-19 23:22:12 +01:00
|
|
|
Version: 2
|
|
|
|
UnitOffset: 0
|
|
|
|
UnitSize: 121
|
|
|
|
Entries:
|
|
|
|
- DieOffset: 0x0000002A
|
|
|
|
Name: main
|
|
|
|
debug_pubtypes:
|
2017-03-03 22:11:55 +01:00
|
|
|
Length:
|
|
|
|
TotalLength: 31
|
2016-12-19 23:22:12 +01:00
|
|
|
Version: 2
|
|
|
|
UnitOffset: 0
|
|
|
|
UnitSize: 121
|
|
|
|
Entries:
|
|
|
|
- DieOffset: 0x00000060
|
|
|
|
Name: int
|
|
|
|
- DieOffset: 0x00000071
|
|
|
|
Name: char
|
|
|
|
...
|
|
|
|
|
|
|
|
#CHECK: DWARF:
|
|
|
|
#CHECK: debug_pubnames:
|
2017-03-03 22:11:55 +01:00
|
|
|
#CHECK: Length:
|
|
|
|
#CHECK: TotalLength: 23
|
2016-12-19 23:22:12 +01:00
|
|
|
#CHECK: Version: 2
|
|
|
|
#CHECK: UnitOffset: 0
|
|
|
|
#CHECK: UnitSize: 121
|
|
|
|
#CHECK: Entries:
|
|
|
|
#CHECK: - DieOffset: 0x0000002A
|
|
|
|
#CHECK: Name: main
|
|
|
|
#CHECK: debug_pubtypes:
|
2017-03-03 22:11:55 +01:00
|
|
|
#CHECK: Length:
|
|
|
|
#CHECK: TotalLength: 31
|
2016-12-19 23:22:12 +01:00
|
|
|
#CHECK: Version: 2
|
|
|
|
#CHECK: UnitOffset: 0
|
|
|
|
#CHECK: UnitSize: 121
|
|
|
|
#CHECK: Entries:
|
|
|
|
#CHECK: - DieOffset: 0x00000060
|
|
|
|
#CHECK: Name: int
|
|
|
|
#CHECK: - DieOffset: 0x00000071
|
|
|
|
#CHECK: Name: char
|
|
|
|
#CHECK: ...
|
2020-05-29 13:56:32 +02:00
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
2020-06-11 22:18:40 +02:00
|
|
|
# RUN: yaml2obj --docnum=2 %s -o %t2
|
|
|
|
# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=EMPTY
|
2020-05-29 13:56:32 +02:00
|
|
|
|
|
|
|
# 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: content: ''
|
|
|
|
# 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: content: ''
|
|
|
|
# EMPTY-NEXT: ...
|
|
|
|
|
|
|
|
--- !mach-o
|
|
|
|
FileHeader:
|
|
|
|
magic: 0xFEEDFACF
|
|
|
|
cputype: 0x01000007
|
|
|
|
cpusubtype: 0x00000003
|
|
|
|
filetype: 0x0000000A
|
|
|
|
ncmds: 1
|
2020-06-11 22:18:40 +02:00
|
|
|
sizeofcmds: 1772
|
2020-05-29 13:56:32 +02:00
|
|
|
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:
|