399 lines · yaml
1## a) Test that yaml2macho is able to emit the .debug_aranges section and obj2yaml2## is 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: 713 sizeofcmds: 184814 flags: 0x0000000015 reserved: 0x0000000016LoadCommands: 17 - cmd: LC_UUID18 cmdsize: 2419 uuid: B4D48511-37F4-3ED4-AFA7-1683DCE69AC420 - cmd: LC_SYMTAB21 cmdsize: 2422 symoff: 409623 nsyms: 224 stroff: 412825 strsize: 2826 - cmd: LC_SEGMENT_6427 cmdsize: 7228 segname: __PAGEZERO29 vmaddr: 030 vmsize: 429496729631 fileoff: 032 filesize: 033 maxprot: 034 initprot: 035 nsects: 036 flags: 037 - cmd: LC_SEGMENT_6438 cmdsize: 47239 segname: __TEXT40 vmaddr: 429496729641 vmsize: 409642 fileoff: 043 filesize: 044 maxprot: 745 initprot: 546 nsects: 547 flags: 048 Sections: 49 - sectname: __text50 segname: __TEXT51 addr: 0x0000000100000F5052 size: 5253 offset: 0x0000000054 align: 455 reloff: 0x0000000056 nreloc: 057 flags: 0x8000040058 reserved1: 0x0000000059 reserved2: 0x0000000060 reserved3: 0x0000000061 - sectname: __stubs62 segname: __TEXT63 addr: 0x0000000100000F8464 size: 665 offset: 0x0000000066 align: 167 reloff: 0x0000000068 nreloc: 069 flags: 0x8000040870 reserved1: 0x0000000071 reserved2: 0x0000000672 reserved3: 0x0000000073 - sectname: __stub_helper74 segname: __TEXT75 addr: 0x0000000100000F8C76 size: 2677 offset: 0x0000000078 align: 279 reloff: 0x0000000080 nreloc: 081 flags: 0x8000040082 reserved1: 0x0000000083 reserved2: 0x0000000084 reserved3: 0x0000000085 - sectname: __cstring86 segname: __TEXT87 addr: 0x0000000100000FA688 size: 1489 offset: 0x0000000090 align: 091 reloff: 0x0000000092 nreloc: 093 flags: 0x0000000294 reserved1: 0x0000000095 reserved2: 0x0000000096 reserved3: 0x0000000097 - sectname: __unwind_info98 segname: __TEXT99 addr: 0x0000000100000FB4100 size: 72101 offset: 0x00000000102 align: 2103 reloff: 0x00000000104 nreloc: 0105 flags: 0x00000000106 reserved1: 0x00000000107 reserved2: 0x00000000108 reserved3: 0x00000000109 - cmd: LC_SEGMENT_64110 cmdsize: 232111 segname: __DATA112 vmaddr: 4294971392113 vmsize: 4096114 fileoff: 0115 filesize: 0116 maxprot: 7117 initprot: 3118 nsects: 2119 flags: 0120 Sections: 121 - sectname: __nl_symbol_ptr122 segname: __DATA123 addr: 0x0000000100001000124 size: 16125 offset: 0x00000000126 align: 3127 reloff: 0x00000000128 nreloc: 0129 flags: 0x00000006130 reserved1: 0x00000001131 reserved2: 0x00000000132 reserved3: 0x00000000133 - sectname: __la_symbol_ptr134 segname: __DATA135 addr: 0x0000000100001010136 size: 8137 offset: 0x00000000138 align: 3139 reloff: 0x00000000140 nreloc: 0141 flags: 0x00000007142 reserved1: 0x00000003143 reserved2: 0x00000000144 reserved3: 0x00000000145 - cmd: LC_SEGMENT_64146 cmdsize: 72147 segname: __LINKEDIT148 vmaddr: 4294975488149 vmsize: 4096150 fileoff: 4096151 filesize: 60152 maxprot: 7153 initprot: 1154 nsects: 0155 flags: 0156 - cmd: LC_SEGMENT_64157 cmdsize: 952158 segname: __DWARF159 vmaddr: 4294979584160 vmsize: 4096161 fileoff: 8192162 filesize: 764163 maxprot: 7164 initprot: 3165 nsects: 11166 flags: 0167 Sections: 168 - sectname: __debug_line169 segname: __DWARF170 addr: 0x0000000100003000171 size: 69172 offset: 0x00002000173 align: 0174 reloff: 0x00000000175 nreloc: 0176 flags: 0x00000000177 reserved1: 0x00000000178 reserved2: 0x00000000179 reserved3: 0x00000000180 - sectname: __debug_pubnames181 segname: __DWARF182 addr: 0x0000000100003045183 size: 27184 offset: 0x00002045185 align: 0186 reloff: 0x00000000187 nreloc: 0188 flags: 0x00000000189 reserved1: 0x00000000190 reserved2: 0x00000000191 reserved3: 0x00000000192 - sectname: __debug_pubtypes193 segname: __DWARF194 addr: 0x0000000100003060195 size: 35196 offset: 0x00002060197 align: 0198 reloff: 0x00000000199 nreloc: 0200 flags: 0x00000000201 reserved1: 0x00000000202 reserved2: 0x00000000203 reserved3: 0x00000000204 - sectname: __debug_aranges205 segname: __DWARF206 addr: 0x0000000100003083207 size: 48208 offset: 0x00002083209 align: 0210 reloff: 0x00000000211 nreloc: 0212 flags: 0x00000000213 reserved1: 0x00000000214 reserved2: 0x00000000215 reserved3: 0x00000000216 - sectname: __debug_info217 segname: __DWARF218 addr: 0x00000001000030B3219 size: 121220 offset: 0x000020B3221 align: 0222 reloff: 0x00000000223 nreloc: 0224 flags: 0x00000000225 reserved1: 0x00000000226 reserved2: 0x00000000227 reserved3: 0x00000000228 - sectname: __debug_abbrev229 segname: __DWARF230 addr: 0x000000010000312C231 size: 76232 offset: 0x0000212C233 align: 0234 reloff: 0x00000000235 nreloc: 0236 flags: 0x00000000237 reserved1: 0x00000000238 reserved2: 0x00000000239 reserved3: 0x00000000240 - sectname: __debug_str241 segname: __DWARF242 addr: 0x0000000100003178243 size: 142244 offset: 0x00002178245 align: 0246 reloff: 0x00000000247 nreloc: 0248 flags: 0x00000000249 reserved1: 0x00000000250 reserved2: 0x00000000251 reserved3: 0x00000000252 - sectname: __apple_names253 segname: __DWARF254 addr: 0x0000000100003206255 size: 60256 offset: 0x00002206257 align: 0258 reloff: 0x00000000259 nreloc: 0260 flags: 0x00000000261 reserved1: 0x00000000262 reserved2: 0x00000000263 reserved3: 0x00000000264 - sectname: __apple_namespac265 segname: __DWARF266 addr: 0x0000000100003242267 size: 36268 offset: 0x00002242269 align: 0270 reloff: 0x00000000271 nreloc: 0272 flags: 0x00000000273 reserved1: 0x00000000274 reserved2: 0x00000000275 reserved3: 0x00000000276 - sectname: __apple_types277 segname: __DWARF278 addr: 0x0000000100003266279 size: 114280 offset: 0x00002266281 align: 0282 reloff: 0x00000000283 nreloc: 0284 flags: 0x00000000285 reserved1: 0x00000000286 reserved2: 0x00000000287 reserved3: 0x00000000288 - sectname: __apple_objc289 segname: __DWARF290 addr: 0x00000001000032D8291 size: 36292 offset: 0x000022D8293 align: 0294 reloff: 0x00000000295 nreloc: 0296 flags: 0x00000000297 reserved1: 0x00000000298 reserved2: 0x00000000299 reserved3: 0x00000000300LinkEditData: 301 NameList: 302 - n_strx: 2303 n_type: 0x0F304 n_sect: 1305 n_desc: 16306 n_value: 4294967296307 - n_strx: 22308 n_type: 0x0F309 n_sect: 1310 n_desc: 0311 n_value: 4294971216312 StringTable: 313 - ''314 - ''315 - __mh_execute_header316 - _main317DWARF: 318 debug_aranges: 319 - Length: 44320 Version: 2321 CuOffset: 0322 AddressSize: 8323 SegmentSelectorSize: 0324 Descriptors: 325 - Address: 0x0000000100000F50326 Length: 52327...328 329# CHECK: debug_aranges:330# CHECK-NEXT: - Length: 0x2C331# CHECK-NEXT: Version: 2332# CHECK-NEXT: CuOffset: 0x0333# CHECK-NEXT: AddressSize: 0x8334# CHECK-NEXT: Descriptors:335# CHECK-NEXT: - Address: 0x100000F50336# CHECK-NEXT: Length: 0x34337 338## b) Test that if the "debug_aranges" entry is empty, yaml2macho will only emit the339## section header.340 341# RUN: yaml2obj --docnum=2 %s -o %t2.o342# RUN: llvm-readobj --sections --section-data %t2.o | FileCheck %s --check-prefix=EMPTY-SECTION343 344# EMPTY-SECTION: Index: 0345# EMPTY-SECTION-NEXT: Name: __debug_aranges (5F 5F 64 65 62 75 67 5F 61 72 61 6E 67 65 73 00)346# EMPTY-SECTION-NEXT: Segment: __DWARF (5F 5F 44 57 41 52 46 00 00 00 00 00 00 00 00 00)347# EMPTY-SECTION-NEXT: Address: 0x0348# EMPTY-SECTION-NEXT: Size: 0xC349# EMPTY-SECTION-NEXT: Offset: 528350# EMPTY-SECTION-NEXT: Alignment: 0351# EMPTY-SECTION-NEXT: RelocationOffset: 0x0352# EMPTY-SECTION-NEXT: RelocationCount: 0353# EMPTY-SECTION-NEXT: Type: Regular (0x0)354# EMPTY-SECTION-NEXT: Attributes [ (0x0)355# EMPTY-SECTION-NEXT: ]356# EMPTY-SECTION-NEXT: Reserved1: 0x0357# EMPTY-SECTION-NEXT: Reserved2: 0x0358# EMPTY-SECTION-NEXT: Reserved3: 0x0359# EMPTY-SECTION-NEXT: SectionData (360# EMPTY-SECTION-NEXT: )361 362--- !mach-o363FileHeader:364 magic: 0xFEEDFACF365 cputype: 0x01000007366 cpusubtype: 0x00000003367 filetype: 0x0000000A368 ncmds: 1369 sizeofcmds: 232370 flags: 0x00000000371 reserved: 0x00000000372LoadCommands:373 - cmd: LC_SEGMENT_64374 cmdsize: 152375 segname: __DWARF376 vmaddr: 0x00377 vmsize: 0x00378 fileoff: 0x00379 filesize: 0x00380 maxprot: 0381 initprot: 0382 nsects: 1383 flags: 0384 Sections:385 - sectname: __debug_aranges386 segname: __DWARF387 addr: 0x00388 size: 12389 offset: 528390 align: 0391 reloff: 0x00000000392 nreloc: 0393 flags: 0x00000000394 reserved1: 0x00000000395 reserved2: 0x00000000396 reserved3: 0x00000000397DWARF:398 debug_aranges: []399