492 lines · yaml
1## a) Test that yaml2obj is able to emit the __debug_abbrev section and obj2yaml is2## able to convert it back.3 4# RUN: yaml2obj --docnum=1 %s | obj2yaml | FileCheck %s5 6--- !mach-o7FileHeader: 8 magic: 0xFEEDFACF9 cputype: 0x0100000710 cpusubtype: 0x0000000311 filetype: 0x0000000A12 ncmds: 513 sizeofcmds: 180014 flags: 0x0000000015 reserved: 0x0000000016LoadCommands: 17 - cmd: LC_SEGMENT_6418 cmdsize: 7219 segname: __PAGEZERO20 vmaddr: 021 vmsize: 429496729622 fileoff: 023 filesize: 024 maxprot: 025 initprot: 026 nsects: 027 flags: 028 - cmd: LC_SEGMENT_6429 cmdsize: 47230 segname: __TEXT31 vmaddr: 429496729632 vmsize: 409633 fileoff: 034 filesize: 035 maxprot: 736 initprot: 537 nsects: 538 flags: 039 Sections: 40 - sectname: __text41 segname: __TEXT42 addr: 0x0000000100000F5043 size: 5244 offset: 0x0000000045 align: 446 reloff: 0x0000000047 nreloc: 048 flags: 0x8000040049 reserved1: 0x0000000050 reserved2: 0x0000000051 reserved3: 0x0000000052 - sectname: __stubs53 segname: __TEXT54 addr: 0x0000000100000F8455 size: 656 offset: 0x0000000057 align: 158 reloff: 0x0000000059 nreloc: 060 flags: 0x8000040861 reserved1: 0x0000000062 reserved2: 0x0000000663 reserved3: 0x0000000064 - sectname: __stub_helper65 segname: __TEXT66 addr: 0x0000000100000F8C67 size: 2668 offset: 0x0000000069 align: 270 reloff: 0x0000000071 nreloc: 072 flags: 0x8000040073 reserved1: 0x0000000074 reserved2: 0x0000000075 reserved3: 0x0000000076 - sectname: __cstring77 segname: __TEXT78 addr: 0x0000000100000FA679 size: 1480 offset: 0x0000000081 align: 082 reloff: 0x0000000083 nreloc: 084 flags: 0x0000000285 reserved1: 0x0000000086 reserved2: 0x0000000087 reserved3: 0x0000000088 - sectname: __unwind_info89 segname: __TEXT90 addr: 0x0000000100000FB491 size: 7292 offset: 0x0000000093 align: 294 reloff: 0x0000000095 nreloc: 096 flags: 0x0000000097 reserved1: 0x0000000098 reserved2: 0x0000000099 reserved3: 0x00000000100 - cmd: LC_SEGMENT_64101 cmdsize: 232102 segname: __DATA103 vmaddr: 4294971392104 vmsize: 4096105 fileoff: 0106 filesize: 0107 maxprot: 7108 initprot: 3109 nsects: 2110 flags: 0111 Sections: 112 - sectname: __nl_symbol_ptr113 segname: __DATA114 addr: 0x0000000100001000115 size: 16116 offset: 0x00000000117 align: 3118 reloff: 0x00000000119 nreloc: 0120 flags: 0x00000006121 reserved1: 0x00000001122 reserved2: 0x00000000123 reserved3: 0x00000000124 - sectname: __la_symbol_ptr125 segname: __DATA126 addr: 0x0000000100001010127 size: 8128 offset: 0x00000000129 align: 3130 reloff: 0x00000000131 nreloc: 0132 flags: 0x00000007133 reserved1: 0x00000003134 reserved2: 0x00000000135 reserved3: 0x00000000136 - cmd: LC_SEGMENT_64137 cmdsize: 72138 segname: __LINKEDIT139 vmaddr: 4294975488140 vmsize: 4096141 fileoff: 4096142 filesize: 60143 maxprot: 7144 initprot: 1145 nsects: 0146 flags: 0147 - cmd: LC_SEGMENT_64148 cmdsize: 952149 segname: __DWARF150 vmaddr: 4294979584151 vmsize: 4096152 fileoff: 8192153 filesize: 764154 maxprot: 7155 initprot: 3156 nsects: 11157 flags: 0158 Sections: 159 - sectname: __debug_line160 segname: __DWARF161 addr: 0x0000000100003000162 size: 69163 offset: 0x00002000164 align: 0165 reloff: 0x00000000166 nreloc: 0167 flags: 0x00000000168 reserved1: 0x00000000169 reserved2: 0x00000000170 reserved3: 0x00000000171 - sectname: __debug_pubnames172 segname: __DWARF173 addr: 0x0000000100003045174 size: 27175 offset: 0x00002045176 align: 0177 reloff: 0x00000000178 nreloc: 0179 flags: 0x00000000180 reserved1: 0x00000000181 reserved2: 0x00000000182 reserved3: 0x00000000183 - sectname: __debug_pubtypes184 segname: __DWARF185 addr: 0x0000000100003060186 size: 35187 offset: 0x00002060188 align: 0189 reloff: 0x00000000190 nreloc: 0191 flags: 0x00000000192 reserved1: 0x00000000193 reserved2: 0x00000000194 reserved3: 0x00000000195 - sectname: __debug_info196 segname: __DWARF197 addr: 0x00000001000030B3198 size: 121199 offset: 0x000020B3200 align: 0201 reloff: 0x00000000202 nreloc: 0203 flags: 0x00000000204 reserved1: 0x00000000205 reserved2: 0x00000000206 reserved3: 0x00000000207 - sectname: __debug_abbrev208 segname: __DWARF209 addr: 0x000000010000312C210 size: 76211 offset: 0x0000212C212 align: 0213 reloff: 0x00000000214 nreloc: 0215 flags: 0x00000000216 reserved1: 0x00000000217 reserved2: 0x00000000218 reserved3: 0x00000000219 - sectname: __debug_str220 segname: __DWARF221 addr: 0x0000000100003178222 size: 142223 offset: 0x00002178224 align: 0225 reloff: 0x00000000226 nreloc: 0227 flags: 0x00000000228 reserved1: 0x00000000229 reserved2: 0x00000000230 reserved3: 0x00000000231 - sectname: __apple_names232 segname: __DWARF233 addr: 0x0000000100003206234 size: 60235 offset: 0x00002206236 align: 0237 reloff: 0x00000000238 nreloc: 0239 flags: 0x00000000240 reserved1: 0x00000000241 reserved2: 0x00000000242 reserved3: 0x00000000243 - sectname: __apple_namespac244 segname: __DWARF245 addr: 0x0000000100003242246 size: 36247 offset: 0x00002242248 align: 0249 reloff: 0x00000000250 nreloc: 0251 flags: 0x00000000252 reserved1: 0x00000000253 reserved2: 0x00000000254 reserved3: 0x00000000255 - sectname: __apple_types256 segname: __DWARF257 addr: 0x0000000100003266258 size: 114259 offset: 0x00002266260 align: 0261 reloff: 0x00000000262 nreloc: 0263 flags: 0x00000000264 reserved1: 0x00000000265 reserved2: 0x00000000266 reserved3: 0x00000000267 - sectname: __apple_objc268 segname: __DWARF269 addr: 0x00000001000032D8270 size: 36271 offset: 0x000022D8272 align: 0273 reloff: 0x00000000274 nreloc: 0275 flags: 0x00000000276 reserved1: 0x00000000277 reserved2: 0x00000000278 reserved3: 0x00000000279DWARF: 280 debug_abbrev: 281 - Table:282 - Code: 0x00000001283 Tag: DW_TAG_compile_unit284 Children: DW_CHILDREN_yes285 Attributes: 286 - Attribute: DW_AT_producer287 Form: DW_FORM_strp288 - Attribute: DW_AT_language289 Form: DW_FORM_data2290 - Attribute: DW_AT_name291 Form: DW_FORM_strp292 - Attribute: DW_AT_stmt_list293 Form: DW_FORM_sec_offset294 - Attribute: DW_AT_comp_dir295 Form: DW_FORM_strp296 - Attribute: DW_AT_low_pc297 Form: DW_FORM_addr298 - Attribute: DW_AT_high_pc299 Form: DW_FORM_data4300 - Code: 0x00000002301 Tag: DW_TAG_subprogram302 Children: DW_CHILDREN_yes303 Attributes: 304 - Attribute: DW_AT_low_pc305 Form: DW_FORM_addr306 - Attribute: DW_AT_high_pc307 Form: DW_FORM_data4308 - Attribute: DW_AT_frame_base309 Form: DW_FORM_exprloc310 - Attribute: DW_AT_name311 Form: DW_FORM_strp312 - Attribute: DW_AT_decl_file313 Form: DW_FORM_data1314 - Attribute: DW_AT_decl_line315 Form: DW_FORM_data1316 - Attribute: DW_AT_prototyped317 Form: DW_FORM_flag_present318 - Attribute: DW_AT_type319 Form: DW_FORM_ref4320 - Attribute: DW_AT_external321 Form: DW_FORM_flag_present322 - Code: 0x00000003323 Tag: DW_TAG_formal_parameter324 Children: DW_CHILDREN_no325 Attributes: 326 - Attribute: DW_AT_location327 Form: DW_FORM_exprloc328 - Attribute: DW_AT_name329 Form: DW_FORM_strp330 - Attribute: DW_AT_decl_file331 Form: DW_FORM_data1332 - Attribute: DW_AT_decl_line333 Form: DW_FORM_data1334 - Attribute: DW_AT_type335 Form: DW_FORM_ref4336 - Code: 0x00000004337 Tag: DW_TAG_base_type338 Children: DW_CHILDREN_no339 Attributes: 340 - Attribute: DW_AT_name341 Form: DW_FORM_strp342 - Attribute: DW_AT_encoding343 Form: DW_FORM_data1344 - Attribute: DW_AT_byte_size345 Form: DW_FORM_data1346 - Code: 0x00000005347 Tag: DW_TAG_pointer_type348 Children: DW_CHILDREN_no349 Attributes: 350 - Attribute: DW_AT_type351 Form: DW_FORM_ref4352...353 354#CHECK: DWARF: 355#CHECK: debug_abbrev: 356#CHECK: - Code: 0x1357#CHECK: Tag: DW_TAG_compile_unit358#CHECK: Children: DW_CHILDREN_yes359#CHECK: Attributes: 360#CHECK: - Attribute: DW_AT_producer361#CHECK: Form: DW_FORM_strp362#CHECK: - Attribute: DW_AT_language363#CHECK: Form: DW_FORM_data2364#CHECK: - Attribute: DW_AT_name365#CHECK: Form: DW_FORM_strp366#CHECK: - Attribute: DW_AT_stmt_list367#CHECK: Form: DW_FORM_sec_offset368#CHECK: - Attribute: DW_AT_comp_dir369#CHECK: Form: DW_FORM_strp370#CHECK: - Attribute: DW_AT_low_pc371#CHECK: Form: DW_FORM_addr372#CHECK: - Attribute: DW_AT_high_pc373#CHECK: Form: DW_FORM_data4374#CHECK: - Code: 0x2375#CHECK: Tag: DW_TAG_subprogram376#CHECK: Children: DW_CHILDREN_yes377#CHECK: Attributes: 378#CHECK: - Attribute: DW_AT_low_pc379#CHECK: Form: DW_FORM_addr380#CHECK: - Attribute: DW_AT_high_pc381#CHECK: Form: DW_FORM_data4382#CHECK: - Attribute: DW_AT_frame_base383#CHECK: Form: DW_FORM_exprloc384#CHECK: - Attribute: DW_AT_name385#CHECK: Form: DW_FORM_strp386#CHECK: - Attribute: DW_AT_decl_file387#CHECK: Form: DW_FORM_data1388#CHECK: - Attribute: DW_AT_decl_line389#CHECK: Form: DW_FORM_data1390#CHECK: - Attribute: DW_AT_prototyped391#CHECK: Form: DW_FORM_flag_present392#CHECK: - Attribute: DW_AT_type393#CHECK: Form: DW_FORM_ref4394#CHECK: - Attribute: DW_AT_external395#CHECK: Form: DW_FORM_flag_present396#CHECK: - Code: 0x3397#CHECK: Tag: DW_TAG_formal_parameter398#CHECK: Children: DW_CHILDREN_no399#CHECK: Attributes: 400#CHECK: - Attribute: DW_AT_location401#CHECK: Form: DW_FORM_exprloc402#CHECK: - Attribute: DW_AT_name403#CHECK: Form: DW_FORM_strp404#CHECK: - Attribute: DW_AT_decl_file405#CHECK: Form: DW_FORM_data1406#CHECK: - Attribute: DW_AT_decl_line407#CHECK: Form: DW_FORM_data1408#CHECK: - Attribute: DW_AT_type409#CHECK: Form: DW_FORM_ref4410#CHECK: - Code: 0x4411#CHECK: Tag: DW_TAG_base_type412#CHECK: Children: DW_CHILDREN_no413#CHECK: Attributes: 414#CHECK: - Attribute: DW_AT_name415#CHECK: Form: DW_FORM_strp416#CHECK: - Attribute: DW_AT_encoding417#CHECK: Form: DW_FORM_data1418#CHECK: - Attribute: DW_AT_byte_size419#CHECK: Form: DW_FORM_data1420#CHECK: - Code: 0x5421#CHECK: Tag: DW_TAG_pointer_type422#CHECK: Children: DW_CHILDREN_no423#CHECK: Attributes: 424#CHECK: - Attribute: DW_AT_type425#CHECK: Form: DW_FORM_ref4426 427## b) Test that yaml2obj emits an error message when there are non-empty compilation428## units and multiple abbrev tables are assigned the same ID.429 430# RUN: not yaml2obj --docnum=2 %s 2>&1 | FileCheck %s --check-prefix=ID-COLLISION431 432# ID-COLLISION: yaml2obj: error: the ID (1) of abbrev table with index 1 has been used by abbrev table with index 0433 434--- !mach-o435FileHeader:436 magic: 0xFEEDFACF437 cputype: 0x01000007438 cpusubtype: 0x00000003439 filetype: 0x0000000A440 ncmds: 1441 sizeofcmds: 232442 flags: 0x00000000443 reserved: 0x00000000444LoadCommands:445 - cmd: LC_SEGMENT_64446 cmdsize: 232447 segname: __DWARF448 vmaddr: 0x00449 vmsize: 0x00450 fileoff: 0x00451 filesize: 0x00452 maxprot: 0453 initprot: 0454 nsects: 2455 flags: 0456 Sections:457 - sectname: __debug_abbrev458 segname: __DWARF459 addr: 0x00460 size: 24461 offset: 528462 align: 0463 reloff: 0x00000000464 nreloc: 0465 flags: 0x00000000466 reserved1: 0x00000000467 reserved2: 0x00000000468 reserved3: 0x00000000469 - sectname: __debug_info470 segname: __DWARF471 addr: 0x00472 size: 64473 offset: 1070474 align: 0475 reloff: 0x00000000476 nreloc: 0477 flags: 0x00000000478 reserved1: 0x00000000479 reserved2: 0x00000000480 reserved3: 0x00000000481DWARF:482 debug_abbrev:483 - ID: 1484 - ID: 1485 debug_info:486 - Version: 4487 AbbrOffset: 0x00488 Entries:489 - AbbrCode: 1490 Values:491 - Value: 0x1234492