1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/test/ObjectYAML/MachO/DWARF-debug_info.yaml
Chris Bieneman 9876c44779 [ObjectYAML] [DWARF] Abstract DWARF Initial Length values
In the DWARF 4 Spec section 7.2.2, data in many DWARF sections, and some DWARF structures start with "Initial Length Values", which are a 32-bit length, and an optional 64-bit length if the 32 bit value == UINT32_MAX.

This patch abstracts the Initial Length type in YAML, and extends its use to all the DWARF structures that are supported in the DWARFYAML code that have Initial Length values.

llvm-svn: 296911
2017-03-03 21:11:55 +00:00

582 lines
20 KiB
YAML

# 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_aranges
segname: __DWARF
addr: 0x0000000100003083
size: 48
offset: 0x00002083
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_abbrev:
- Code: 0x00000001
Tag: DW_TAG_compile_unit
Children: DW_CHILDREN_yes
Attributes:
- Attribute: DW_AT_producer
Form: DW_FORM_strp
- Attribute: DW_AT_language
Form: DW_FORM_data2
- Attribute: DW_AT_name
Form: DW_FORM_strp
- Attribute: DW_AT_stmt_list
Form: DW_FORM_sec_offset
- Attribute: DW_AT_comp_dir
Form: DW_FORM_strp
- Attribute: DW_AT_low_pc
Form: DW_FORM_addr
- Attribute: DW_AT_high_pc
Form: DW_FORM_data4
- Code: 0x00000002
Tag: DW_TAG_subprogram
Children: DW_CHILDREN_yes
Attributes:
- Attribute: DW_AT_low_pc
Form: DW_FORM_addr
- Attribute: DW_AT_high_pc
Form: DW_FORM_data4
- Attribute: DW_AT_frame_base
Form: DW_FORM_exprloc
- Attribute: DW_AT_name
Form: DW_FORM_strp
- Attribute: DW_AT_decl_file
Form: DW_FORM_data1
- Attribute: DW_AT_decl_line
Form: DW_FORM_data1
- Attribute: DW_AT_prototyped
Form: DW_FORM_flag_present
- Attribute: DW_AT_type
Form: DW_FORM_ref4
- Attribute: DW_AT_external
Form: DW_FORM_flag_present
- Code: 0x00000003
Tag: DW_TAG_formal_parameter
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_location
Form: DW_FORM_exprloc
- Attribute: DW_AT_name
Form: DW_FORM_strp
- Attribute: DW_AT_decl_file
Form: DW_FORM_data1
- Attribute: DW_AT_decl_line
Form: DW_FORM_data1
- Attribute: DW_AT_type
Form: DW_FORM_ref4
- Code: 0x00000004
Tag: DW_TAG_base_type
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_name
Form: DW_FORM_strp
- Attribute: DW_AT_encoding
Form: DW_FORM_data1
- Attribute: DW_AT_byte_size
Form: DW_FORM_data1
- Code: 0x00000005
Tag: DW_TAG_pointer_type
Children: DW_CHILDREN_no
Attributes:
- Attribute: DW_AT_type
Form: DW_FORM_ref4
debug_aranges:
- Length:
TotalLength: 44
Version: 2
CuOffset: 0
AddrSize: 8
SegSize: 0
Descriptors:
- Address: 0x0000000100000F50
Length: 52
debug_info:
- Length:
TotalLength: 117
Version: 4
AbbrOffset: 0
AddrSize: 8
Entries:
- AbbrCode: 0x00000001
Values:
- Value: 0x0000000000000001
- Value: 0x000000000000000C
- Value: 0x0000000000000038
- Value: 0x0000000000000000
- Value: 0x0000000000000046
- Value: 0x0000000100000F50
- Value: 0x0000000000000034
- AbbrCode: 0x00000002
Values:
- Value: 0x0000000100000F50
- Value: 0x0000000000000034
- Value: 0x0000000000000001
BlockData:
- 0x56
- Value: 0x0000000000000076
- Value: 0x0000000000000001
- Value: 0x0000000000000003
- Value: 0x0000000000000001
- Value: 0x0000000000000060
- Value: 0x0000000000000001
- AbbrCode: 0x00000003
Values:
- Value: 0x0000000000000002
BlockData:
- 0x91
- 0x78
- Value: 0x000000000000007B
- Value: 0x0000000000000001
- Value: 0x0000000000000003
- Value: 0x0000000000000060
- AbbrCode: 0x00000003
Values:
- Value: 0x0000000000000002
BlockData:
- 0x91
- 0x70
- Value: 0x0000000000000080
- Value: 0x0000000000000001
- Value: 0x0000000000000003
- Value: 0x0000000000000067
- AbbrCode: 0x00000000
Values:
- AbbrCode: 0x00000004
Values:
- Value: 0x0000000000000085
- Value: 0x0000000000000005
- Value: 0x0000000000000004
- AbbrCode: 0x00000005
Values:
- Value: 0x000000000000006C
- AbbrCode: 0x00000005
Values:
- Value: 0x0000000000000071
- AbbrCode: 0x00000004
Values:
- Value: 0x0000000000000089
- Value: 0x0000000000000006
- Value: 0x0000000000000001
- AbbrCode: 0x00000000
Values:
debug_line:
- Length:
TotalLength: 65
Version: 2
PrologueLength: 36
MinInstLength: 1
DefaultIsStmt: 1
LineBase: 251
LineRange: 14
OpcodeBase: 13
StandardOpcodeLengths:
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- 1
- 0
- 0
- 1
IncludeDirs:
Files:
- Name: hello_world.c
DirIdx: 0
ModTime: 0
Length: 0
Opcodes:
- Opcode: DW_LNS_extended_op
ExtLen: 9
SubOpcode: DW_LNE_set_address
Data: 4294971216
- Opcode: 0x14
Data: 4294971216
- Opcode: DW_LNS_set_column
Data: 3
- Opcode: DW_LNS_set_prologue_end
Data: 3
- Opcode: DW_LNS_const_add_pc
Data: 3
- Opcode: 0xBB
Data: 3
- Opcode: 0xBB
Data: 3
- Opcode: DW_LNS_advance_pc
Data: 11
- Opcode: DW_LNS_extended_op
ExtLen: 1
SubOpcode: DW_LNE_end_sequence
Data: 11
...
...
#CHECK: DWARF:
#CHECK: debug_info:
#CHECK: - Length:
#CHECK: TotalLength: 117
#CHECK: Version: 4
#CHECK: AbbrOffset: 0
#CHECK: AddrSize: 8
#CHECK: Entries:
#CHECK: - AbbrCode: 0x00000001
#CHECK: Values:
#CHECK: - Value: 0x0000000000000001
#CHECK: - Value: 0x000000000000000C
#CHECK: - Value: 0x0000000000000038
#CHECK: - Value: 0x0000000000000000
#CHECK: - Value: 0x0000000000000046
#CHECK: - Value: 0x0000000100000F50
#CHECK: - Value: 0x0000000000000034
#CHECK: - AbbrCode: 0x00000002
#CHECK: Values:
#CHECK: - Value: 0x0000000100000F50
#CHECK: - Value: 0x0000000000000034
#CHECK: - Value: 0x0000000000000001
#CHECK: BlockData:
#CHECK: - 0x56
#CHECK: - Value: 0x0000000000000076
#CHECK: - Value: 0x0000000000000001
#CHECK: - Value: 0x0000000000000003
#CHECK: - Value: 0x0000000000000001
#CHECK: - Value: 0x0000000000000060
#CHECK: - Value: 0x0000000000000001
#CHECK: - AbbrCode: 0x00000003
#CHECK: Values:
#CHECK: - Value: 0x0000000000000002
#CHECK: BlockData:
#CHECK: - 0x91
#CHECK: - 0x78
#CHECK: - Value: 0x000000000000007B
#CHECK: - Value: 0x0000000000000001
#CHECK: - Value: 0x0000000000000003
#CHECK: - Value: 0x0000000000000060
#CHECK: - AbbrCode: 0x00000003
#CHECK: Values:
#CHECK: - Value: 0x0000000000000002
#CHECK: BlockData:
#CHECK: - 0x91
#CHECK: - 0x70
#CHECK: - Value: 0x0000000000000080
#CHECK: - Value: 0x0000000000000001
#CHECK: - Value: 0x0000000000000003
#CHECK: - Value: 0x0000000000000067
#CHECK: - AbbrCode: 0x00000000
#CHECK: Values:
#CHECK: - AbbrCode: 0x00000004
#CHECK: Values:
#CHECK: - Value: 0x0000000000000085
#CHECK: - Value: 0x0000000000000005
#CHECK: - Value: 0x0000000000000004
#CHECK: - AbbrCode: 0x00000005
#CHECK: Values:
#CHECK: - Value: 0x000000000000006C
#CHECK: - AbbrCode: 0x00000005
#CHECK: Values:
#CHECK: - Value: 0x0000000000000071
#CHECK: - AbbrCode: 0x00000004
#CHECK: Values:
#CHECK: - Value: 0x0000000000000089
#CHECK: - Value: 0x0000000000000006
#CHECK: - Value: 0x0000000000000001
#CHECK: - AbbrCode: 0x00000000
#CHECK: Values: