681 lines · yaml
1## This file contains test cases for generating a DWARFv5 .debug_info2## section in object files from the DWARF entry of Mach-O YAML inputs.3 4## a) Test that yaml2obj emits a DWARF32 .debug_info sections and obj2yaml5## converts it back.6 7# RUN: yaml2obj --docnum=1 %s | obj2yaml | FileCheck %s --check-prefix=DWARF328 9--- !mach-o10FileHeader: 11 magic: 0xFEEDFACF12 cputype: 0x0100000713 cpusubtype: 0x0000000314 filetype: 0x0000000A15 ncmds: 516 sizeofcmds: 180017 flags: 0x0000000018 reserved: 0x0000000019LoadCommands: 20 - cmd: LC_SEGMENT_6421 cmdsize: 7222 segname: __PAGEZERO23 vmaddr: 024 vmsize: 429496729625 fileoff: 026 filesize: 027 maxprot: 028 initprot: 029 nsects: 030 flags: 031 - cmd: LC_SEGMENT_6432 cmdsize: 47233 segname: __TEXT34 vmaddr: 429496729635 vmsize: 409636 fileoff: 037 filesize: 038 maxprot: 739 initprot: 540 nsects: 541 flags: 042 Sections: 43 - sectname: __text44 segname: __TEXT45 addr: 0x0000000100000F5046 size: 5247 offset: 0x0000000048 align: 449 reloff: 0x0000000050 nreloc: 051 flags: 0x8000040052 reserved1: 0x0000000053 reserved2: 0x0000000054 reserved3: 0x0000000055 - sectname: __stubs56 segname: __TEXT57 addr: 0x0000000100000F8458 size: 659 offset: 0x0000000060 align: 161 reloff: 0x0000000062 nreloc: 063 flags: 0x8000040864 reserved1: 0x0000000065 reserved2: 0x0000000666 reserved3: 0x0000000067 - sectname: __stub_helper68 segname: __TEXT69 addr: 0x0000000100000F8C70 size: 2671 offset: 0x0000000072 align: 273 reloff: 0x0000000074 nreloc: 075 flags: 0x8000040076 reserved1: 0x0000000077 reserved2: 0x0000000078 reserved3: 0x0000000079 - sectname: __cstring80 segname: __TEXT81 addr: 0x0000000100000FA682 size: 1483 offset: 0x0000000084 align: 085 reloff: 0x0000000086 nreloc: 087 flags: 0x0000000288 reserved1: 0x0000000089 reserved2: 0x0000000090 reserved3: 0x0000000091 - sectname: __unwind_info92 segname: __TEXT93 addr: 0x0000000100000FB494 size: 7295 offset: 0x0000000096 align: 297 reloff: 0x0000000098 nreloc: 099 flags: 0x00000000100 reserved1: 0x00000000101 reserved2: 0x00000000102 reserved3: 0x00000000103 - cmd: LC_SEGMENT_64104 cmdsize: 232105 segname: __DATA106 vmaddr: 4294971392107 vmsize: 4096108 fileoff: 0109 filesize: 0110 maxprot: 7111 initprot: 3112 nsects: 2113 flags: 0114 Sections: 115 - sectname: __nl_symbol_ptr116 segname: __DATA117 addr: 0x0000000100001000118 size: 16119 offset: 0x00000000120 align: 3121 reloff: 0x00000000122 nreloc: 0123 flags: 0x00000006124 reserved1: 0x00000001125 reserved2: 0x00000000126 reserved3: 0x00000000127 - sectname: __la_symbol_ptr128 segname: __DATA129 addr: 0x0000000100001010130 size: 8131 offset: 0x00000000132 align: 3133 reloff: 0x00000000134 nreloc: 0135 flags: 0x00000007136 reserved1: 0x00000003137 reserved2: 0x00000000138 reserved3: 0x00000000139 - cmd: LC_SEGMENT_64140 cmdsize: 72141 segname: __LINKEDIT142 vmaddr: 4294975488143 vmsize: 4096144 fileoff: 4096145 filesize: 60146 maxprot: 7147 initprot: 1148 nsects: 0149 flags: 0150 - cmd: LC_SEGMENT_64151 cmdsize: 952152 segname: __DWARF153 vmaddr: 4294979584154 vmsize: 4096155 fileoff: 8192156 filesize: 765157 maxprot: 7158 initprot: 3159 nsects: 11160 flags: 0161 Sections: 162 - sectname: __debug_line163 segname: __DWARF164 addr: 0x0000000100003000165 size: 69166 offset: 0x00002000167 align: 0168 reloff: 0x00000000169 nreloc: 0170 flags: 0x00000000171 reserved1: 0x00000000172 reserved2: 0x00000000173 reserved3: 0x00000000174 - sectname: __debug_pubnames175 segname: __DWARF176 addr: 0x0000000100003045177 size: 27178 offset: 0x00002045179 align: 0180 reloff: 0x00000000181 nreloc: 0182 flags: 0x00000000183 reserved1: 0x00000000184 reserved2: 0x00000000185 reserved3: 0x00000000186 - sectname: __debug_pubtypes187 segname: __DWARF188 addr: 0x0000000100003060189 size: 35190 offset: 0x00002060191 align: 0192 reloff: 0x00000000193 nreloc: 0194 flags: 0x00000000195 reserved1: 0x00000000196 reserved2: 0x00000000197 reserved3: 0x00000000198 - sectname: __debug_aranges199 segname: __DWARF200 addr: 0x0000000100003083201 size: 48202 offset: 0x00002083203 align: 0204 reloff: 0x00000000205 nreloc: 0206 flags: 0x00000000207 reserved1: 0x00000000208 reserved2: 0x00000000209 reserved3: 0x00000000210 - sectname: __debug_info211 segname: __DWARF212 addr: 0x00000001000030B3213 size: 122214 offset: 0x000020B3215 align: 0216 reloff: 0x00000000217 nreloc: 0218 flags: 0x00000000219 reserved1: 0x00000000220 reserved2: 0x00000000221 reserved3: 0x00000000222 - sectname: __debug_abbrev223 segname: __DWARF224 addr: 0x000000010000312C225 size: 76226 offset: 0x0000212D227 align: 0228 reloff: 0x00000000229 nreloc: 0230 flags: 0x00000000231 reserved1: 0x00000000232 reserved2: 0x00000000233 reserved3: 0x00000000234 - sectname: __debug_str235 segname: __DWARF236 addr: 0x0000000100003178237 size: 142238 offset: 0x00002179239 align: 0240 reloff: 0x00000000241 nreloc: 0242 flags: 0x00000000243 reserved1: 0x00000000244 reserved2: 0x00000000245 reserved3: 0x00000000246 - sectname: __apple_names247 segname: __DWARF248 addr: 0x0000000100003206249 size: 60250 offset: 0x00002207251 align: 0252 reloff: 0x00000000253 nreloc: 0254 flags: 0x00000000255 reserved1: 0x00000000256 reserved2: 0x00000000257 reserved3: 0x00000000258 - sectname: __apple_namespac259 segname: __DWARF260 addr: 0x0000000100003242261 size: 36262 offset: 0x00002243263 align: 0264 reloff: 0x00000000265 nreloc: 0266 flags: 0x00000000267 reserved1: 0x00000000268 reserved2: 0x00000000269 reserved3: 0x00000000270 - sectname: __apple_types271 segname: __DWARF272 addr: 0x0000000100003266273 size: 114274 offset: 0x00002267275 align: 0276 reloff: 0x00000000277 nreloc: 0278 flags: 0x00000000279 reserved1: 0x00000000280 reserved2: 0x00000000281 reserved3: 0x00000000282 - sectname: __apple_objc283 segname: __DWARF284 addr: 0x00000001000032D8285 size: 36286 offset: 0x000022D9287 align: 0288 reloff: 0x00000000289 nreloc: 0290 flags: 0x00000000291 reserved1: 0x00000000292 reserved2: 0x00000000293 reserved3: 0x00000000294LinkEditData: 295 NameList: 296 - n_strx: 2297 n_type: 0x0F298 n_sect: 1299 n_desc: 16300 n_value: 4294967296301 - n_strx: 22302 n_type: 0x0F303 n_sect: 1304 n_desc: 0305 n_value: 4294971216306 StringTable: 307 - ''308 - ''309 - __mh_execute_header310 - _main311DWARF: 312 debug_abbrev: 313 - Table:314 - Code: 0x00000001315 Tag: DW_TAG_compile_unit316 Children: DW_CHILDREN_yes317 Attributes:318 - Attribute: DW_AT_producer319 Form: DW_FORM_strp320 - Attribute: DW_AT_language321 Form: DW_FORM_data2322 - Attribute: DW_AT_name323 Form: DW_FORM_strp324 - Attribute: DW_AT_stmt_list325 Form: DW_FORM_sec_offset326 - Attribute: DW_AT_comp_dir327 Form: DW_FORM_strp328 - Attribute: DW_AT_low_pc329 Form: DW_FORM_addr330 - Attribute: DW_AT_high_pc331 Form: DW_FORM_data4332 - Code: 0x00000002333 Tag: DW_TAG_subprogram334 Children: DW_CHILDREN_yes335 Attributes:336 - Attribute: DW_AT_low_pc337 Form: DW_FORM_addr338 - Attribute: DW_AT_high_pc339 Form: DW_FORM_data4340 - Attribute: DW_AT_frame_base341 Form: DW_FORM_exprloc342 - Attribute: DW_AT_name343 Form: DW_FORM_strp344 - Attribute: DW_AT_decl_file345 Form: DW_FORM_data1346 - Attribute: DW_AT_decl_line347 Form: DW_FORM_data1348 - Attribute: DW_AT_prototyped349 Form: DW_FORM_flag_present350 - Attribute: DW_AT_type351 Form: DW_FORM_ref4352 - Attribute: DW_AT_external353 Form: DW_FORM_flag_present354 - Code: 0x00000003355 Tag: DW_TAG_formal_parameter356 Children: DW_CHILDREN_no357 Attributes:358 - Attribute: DW_AT_location359 Form: DW_FORM_exprloc360 - Attribute: DW_AT_name361 Form: DW_FORM_strp362 - Attribute: DW_AT_decl_file363 Form: DW_FORM_data1364 - Attribute: DW_AT_decl_line365 Form: DW_FORM_data1366 - Attribute: DW_AT_type367 Form: DW_FORM_ref4368 - Code: 0x00000004369 Tag: DW_TAG_base_type370 Children: DW_CHILDREN_no371 Attributes:372 - Attribute: DW_AT_name373 Form: DW_FORM_strp374 - Attribute: DW_AT_encoding375 Form: DW_FORM_data1376 - Attribute: DW_AT_byte_size377 Form: DW_FORM_data1378 - Code: 0x00000005379 Tag: DW_TAG_pointer_type380 Children: DW_CHILDREN_no381 Attributes:382 - Attribute: DW_AT_type383 Form: DW_FORM_ref4384 debug_aranges: 385 - Length: 44386 Version: 2387 CuOffset: 0388 AddressSize: 8389 SegmentSelectorSize: 0390 Descriptors: 391 - Address: 0x0000000100000F50392 Length: 52393 debug_info: 394 - Length: 118395 Version: 5396 UnitType: DW_UT_compile397 AbbrOffset: 0398 AddrSize: 8399 Entries: 400 - AbbrCode: 0x00000001401 Values: 402 - Value: 0x0000000000000001403 - Value: 0x000000000000000C404 - Value: 0x0000000000000038405 - Value: 0x0000000000000000406 - Value: 0x0000000000000046407 - Value: 0x0000000100000F50408 - Value: 0x0000000000000034409 - AbbrCode: 0x00000002410 Values: 411 - Value: 0x0000000100000F50412 - Value: 0x0000000000000034413 - Value: 0x0000000000000001414 BlockData: 415 - 0x56416 - Value: 0x0000000000000076417 - Value: 0x0000000000000001418 - Value: 0x0000000000000003419 - Value: 0x0000000000000001420 - Value: 0x0000000000000060421 - Value: 0x0000000000000001422 - AbbrCode: 0x00000003423 Values: 424 - Value: 0x0000000000000002425 BlockData: 426 - 0x91427 - 0x78428 - Value: 0x000000000000007B429 - Value: 0x0000000000000001430 - Value: 0x0000000000000003431 - Value: 0x0000000000000060432 - AbbrCode: 0x00000003433 Values: 434 - Value: 0x0000000000000002435 BlockData: 436 - 0x91437 - 0x70438 - Value: 0x0000000000000080439 - Value: 0x0000000000000001440 - Value: 0x0000000000000003441 - Value: 0x0000000000000067442 - AbbrCode: 0x00000000443 - AbbrCode: 0x00000004444 Values: 445 - Value: 0x0000000000000085446 - Value: 0x0000000000000005447 - Value: 0x0000000000000004448 - AbbrCode: 0x00000005449 Values: 450 - Value: 0x000000000000006C451 - AbbrCode: 0x00000005452 Values: 453 - Value: 0x0000000000000071454 - AbbrCode: 0x00000004455 Values: 456 - Value: 0x0000000000000089457 - Value: 0x0000000000000006458 - Value: 0x0000000000000001459 - AbbrCode: 0x00000000460 debug_line: 461 - Length: 65462 Version: 2463 PrologueLength: 36464 MinInstLength: 1465 DefaultIsStmt: 1466 LineBase: 251467 LineRange: 14468 OpcodeBase: 13469 StandardOpcodeLengths: 470 - 0471 - 1472 - 1473 - 1474 - 1475 - 0476 - 0477 - 0478 - 1479 - 0480 - 0481 - 1482 Files: 483 - Name: hello_world.c484 DirIdx: 0485 ModTime: 0486 Length: 0487 Opcodes: 488 - Opcode: DW_LNS_extended_op489 ExtLen: 9490 SubOpcode: DW_LNE_set_address491 Data: 4294971216492 - Opcode: 0x14493 Data: 4294971216494 - Opcode: DW_LNS_set_column495 Data: 3496 - Opcode: DW_LNS_set_prologue_end497 Data: 3498 - Opcode: DW_LNS_const_add_pc499 Data: 3500 - Opcode: 0xBB501 Data: 3502 - Opcode: 0xBB503 Data: 3504 - Opcode: DW_LNS_advance_pc505 Data: 11506 - Opcode: DW_LNS_extended_op507 ExtLen: 1508 SubOpcode: DW_LNE_end_sequence509 Data: 11510...511 512# DWARF32: DWARF:513# DWARF32: debug_info:514# DWARF32-NEXT: - Length: 0x76515# DWARF32-NEXT: Version: 5516# DWARF32-NEXT: UnitType: DW_UT_compile517# DWARF32-NEXT: AbbrevTableID: 0518# DWARF32-NEXT: AbbrOffset: 0519# DWARF32-NEXT: AddrSize: 8520# DWARF32-NEXT: Entries:521# DWARF32-NEXT: - AbbrCode: 0x1522# DWARF32-NEXT: Values:523# DWARF32-NEXT: - Value: 0x1524# DWARF32-NEXT: - Value: 0xC525# DWARF32-NEXT: - Value: 0x38526# DWARF32-NEXT: - Value: 0x0527# DWARF32-NEXT: - Value: 0x46528# DWARF32-NEXT: - Value: 0x100000F50529# DWARF32-NEXT: - Value: 0x34530# DWARF32-NEXT: - AbbrCode: 0x2531# DWARF32-NEXT: Values:532# DWARF32-NEXT: - Value: 0x100000F50533# DWARF32-NEXT: - Value: 0x34534# DWARF32-NEXT: - Value: 0x1535# DWARF32-NEXT: BlockData: [ 0x56 ]536# DWARF32-NEXT: - Value: 0x76537# DWARF32-NEXT: - Value: 0x1538# DWARF32-NEXT: - Value: 0x3539# DWARF32-NEXT: - Value: 0x1540# DWARF32-NEXT: - Value: 0x60541# DWARF32-NEXT: - Value: 0x1542# DWARF32-NEXT: - AbbrCode: 0x3543# DWARF32-NEXT: Values:544# DWARF32-NEXT: - Value: 0x2545# DWARF32-NEXT: BlockData: [ 0x91, 0x78 ]546# DWARF32-NEXT: - Value: 0x7B547# DWARF32-NEXT: - Value: 0x1548# DWARF32-NEXT: - Value: 0x3549# DWARF32-NEXT: - Value: 0x60550# DWARF32-NEXT: - AbbrCode: 0x3551# DWARF32-NEXT: Values: 552# DWARF32-NEXT: - Value: 0x2553# DWARF32-NEXT: BlockData: [ 0x91, 0x70 ]554# DWARF32-NEXT: - Value: 0x80555# DWARF32-NEXT: - Value: 0x1556# DWARF32-NEXT: - Value: 0x3557# DWARF32-NEXT: - Value: 0x67558# DWARF32-NEXT: - AbbrCode: 0x0559# DWARF32-NEXT: - AbbrCode: 0x4560# DWARF32-NEXT: Values: 561# DWARF32-NEXT: - Value: 0x85562# DWARF32-NEXT: - Value: 0x5563# DWARF32-NEXT: - Value: 0x4564# DWARF32-NEXT: - AbbrCode: 0x5565# DWARF32-NEXT: Values: 566# DWARF32-NEXT: - Value: 0x6C567# DWARF32-NEXT: - AbbrCode: 0x5568# DWARF32-NEXT: Values: 569# DWARF32-NEXT: - Value: 0x71570# DWARF32-NEXT: - AbbrCode: 0x4571# DWARF32-NEXT: Values: 572# DWARF32-NEXT: - Value: 0x89573# DWARF32-NEXT: - Value: 0x6574# DWARF32-NEXT: - Value: 0x1575# DWARF32-NEXT: - AbbrCode: 0x0576 577## b) Test that yaml2obj emits a correct unit header and obj2yaml is able to convert it back.578 579## Test DWARF32 unit header.580 581# RUN: yaml2obj --docnum=2 -DFORMAT=DWARF32 -DLENGTH=12 %s | \582# RUN: obj2yaml | FileCheck %s --check-prefix=DWARF32-YAML583 584# DWARF32-YAML: debug_info:585# DWARF32-YAML-NEXT: - Length: 0xC586# DWARF32-YAML-NEXT: Version: 5587# DWARF32-YAML-NEXT: UnitType: DW_UT_compile588# DWARF32-YAML-NEXT: AbbrevTableID: 0589# DWARF32-YAML-NEXT: AbbrOffset: 0x0590# DWARF32-YAML-NEXT: AddrSize: 8591# DWARF32-YAML-NEXT: Entries:592# DWARF32-YAML-NEXT: - AbbrCode: 0x1593# DWARF32-YAML-NEXT: Values:594# DWARF32-YAML-NEXT: - Value: 0x1234595 596--- !mach-o597FileHeader:598 magic: 0xFEEDFACF599 cputype: 0x01000007600 cpusubtype: 0x00000003601 filetype: 0x0000000A602 ncmds: 1603 sizeofcmds: 232604 flags: 0x00000000605 reserved: 0x00000000606LoadCommands:607 - cmd: LC_SEGMENT_64608 cmdsize: 232609 segname: __DWARF610 vmaddr: 0x00611 vmsize: 0x00612 fileoff: 0x00613 filesize: 0x00614 maxprot: 0615 initprot: 0616 nsects: 2617 flags: 0618 Sections:619 - sectname: __debug_abbrev620 segname: __DWARF621 addr: 0x00622 size: 12623 offset: 528624 align: 0625 reloff: 0x00000000626 nreloc: 0627 flags: 0x00000000628 reserved1: 0x00000000629 reserved2: 0x00000000630 reserved3: 0x00000000631 - sectname: __debug_info632 segname: __DWARF633 addr: 0x00634 size: 0xffff635 offset: 1070636 align: 0637 reloff: 0x00000000638 nreloc: 0639 flags: 0x00000000640 reserved1: 0x00000000641 reserved2: 0x00000000642 reserved3: 0x00000000643DWARF:644 debug_abbrev: 645 - Table:646 - Code: 1647 Tag: DW_TAG_compile_unit648 Children: DW_CHILDREN_no649 Attributes:650 - Attribute: DW_AT_low_pc651 Form: DW_FORM_addr652 debug_info:653 - Format: [[FORMAT]]654 Length: [[LENGTH]]655 Version: 5656 UnitType: DW_UT_compile657 AbbrOffset: 0658 AddrSize: 8659 Entries:660 - AbbrCode: 1661 Values:662 - Value: 0x1234663 664## Test DWARF64 unit header.665 666# RUN: yaml2obj --docnum=2 -DFORMAT=DWARF64 -DLENGTH=20 %s | \667# RUN: obj2yaml | FileCheck %s --check-prefix=DWARF64-YAML668 669# DWARF64-YAML: debug_info:670# DWARF64-YAML-NEXT: - Format: DWARF64671# DWARF64-YAML-NEXT: Length: 0x14672# DWARF64-YAML-NEXT: Version: 5673# DWARF64-YAML-NEXT: UnitType: DW_UT_compile674# DWARF64-YAML-NEXT: AbbrevTableID: 0675# DWARF64-YAML-NEXT: AbbrOffset: 0x0676# DWARF64-YAML-NEXT: AddrSize: 8677# DWARF64-YAML-NEXT: Entries:678# DWARF64-YAML-NEXT: - AbbrCode: 0x1679# DWARF64-YAML-NEXT: Values:680# DWARF64-YAML-NEXT: - Value: 0x1234681