Home | History | Annotate | Download | only in MachO
      1 # RUN: yaml2obj %s | obj2yaml | FileCheck %s
      2 
      3 --- !mach-o
      4 FileHeader:      
      5   magic:           0xFEEDFACF
      6   cputype:         0x01000007
      7   cpusubtype:      0x00000003
      8   filetype:        0x0000000A
      9   ncmds:           5
     10   sizeofcmds:      1800
     11   flags:           0x00000000
     12   reserved:        0x00000000
     13 LoadCommands:    
     14   - cmd:             LC_SEGMENT_64
     15     cmdsize:         72
     16     segname:         __PAGEZERO
     17     vmaddr:          0
     18     vmsize:          4294967296
     19     fileoff:         0
     20     filesize:        0
     21     maxprot:         0
     22     initprot:        0
     23     nsects:          0
     24     flags:           0
     25   - cmd:             LC_SEGMENT_64
     26     cmdsize:         472
     27     segname:         __TEXT
     28     vmaddr:          4294967296
     29     vmsize:          4096
     30     fileoff:         0
     31     filesize:        0
     32     maxprot:         7
     33     initprot:        5
     34     nsects:          5
     35     flags:           0
     36     Sections:        
     37       - sectname:        __text
     38         segname:         __TEXT
     39         addr:            0x0000000100000F50
     40         size:            52
     41         offset:          0x00000000
     42         align:           4
     43         reloff:          0x00000000
     44         nreloc:          0
     45         flags:           0x80000400
     46         reserved1:       0x00000000
     47         reserved2:       0x00000000
     48         reserved3:       0x00000000
     49       - sectname:        __stubs
     50         segname:         __TEXT
     51         addr:            0x0000000100000F84
     52         size:            6
     53         offset:          0x00000000
     54         align:           1
     55         reloff:          0x00000000
     56         nreloc:          0
     57         flags:           0x80000408
     58         reserved1:       0x00000000
     59         reserved2:       0x00000006
     60         reserved3:       0x00000000
     61       - sectname:        __stub_helper
     62         segname:         __TEXT
     63         addr:            0x0000000100000F8C
     64         size:            26
     65         offset:          0x00000000
     66         align:           2
     67         reloff:          0x00000000
     68         nreloc:          0
     69         flags:           0x80000400
     70         reserved1:       0x00000000
     71         reserved2:       0x00000000
     72         reserved3:       0x00000000
     73       - sectname:        __cstring
     74         segname:         __TEXT
     75         addr:            0x0000000100000FA6
     76         size:            14
     77         offset:          0x00000000
     78         align:           0
     79         reloff:          0x00000000
     80         nreloc:          0
     81         flags:           0x00000002
     82         reserved1:       0x00000000
     83         reserved2:       0x00000000
     84         reserved3:       0x00000000
     85       - sectname:        __unwind_info
     86         segname:         __TEXT
     87         addr:            0x0000000100000FB4
     88         size:            72
     89         offset:          0x00000000
     90         align:           2
     91         reloff:          0x00000000
     92         nreloc:          0
     93         flags:           0x00000000
     94         reserved1:       0x00000000
     95         reserved2:       0x00000000
     96         reserved3:       0x00000000
     97   - cmd:             LC_SEGMENT_64
     98     cmdsize:         232
     99     segname:         __DATA
    100     vmaddr:          4294971392
    101     vmsize:          4096
    102     fileoff:         0
    103     filesize:        0
    104     maxprot:         7
    105     initprot:        3
    106     nsects:          2
    107     flags:           0
    108     Sections:        
    109       - sectname:        __nl_symbol_ptr
    110         segname:         __DATA
    111         addr:            0x0000000100001000
    112         size:            16
    113         offset:          0x00000000
    114         align:           3
    115         reloff:          0x00000000
    116         nreloc:          0
    117         flags:           0x00000006
    118         reserved1:       0x00000001
    119         reserved2:       0x00000000
    120         reserved3:       0x00000000
    121       - sectname:        __la_symbol_ptr
    122         segname:         __DATA
    123         addr:            0x0000000100001010
    124         size:            8
    125         offset:          0x00000000
    126         align:           3
    127         reloff:          0x00000000
    128         nreloc:          0
    129         flags:           0x00000007
    130         reserved1:       0x00000003
    131         reserved2:       0x00000000
    132         reserved3:       0x00000000
    133   - cmd:             LC_SEGMENT_64
    134     cmdsize:         72
    135     segname:         __LINKEDIT
    136     vmaddr:          4294975488
    137     vmsize:          4096
    138     fileoff:         4096
    139     filesize:        60
    140     maxprot:         7
    141     initprot:        1
    142     nsects:          0
    143     flags:           0
    144   - cmd:             LC_SEGMENT_64
    145     cmdsize:         952
    146     segname:         __DWARF
    147     vmaddr:          4294979584
    148     vmsize:          4096
    149     fileoff:         8192
    150     filesize:        764
    151     maxprot:         7
    152     initprot:        3
    153     nsects:          11
    154     flags:           0
    155     Sections:        
    156       - sectname:        __debug_line
    157         segname:         __DWARF
    158         addr:            0x0000000100003000
    159         size:            69
    160         offset:          0x00002000
    161         align:           0
    162         reloff:          0x00000000
    163         nreloc:          0
    164         flags:           0x00000000
    165         reserved1:       0x00000000
    166         reserved2:       0x00000000
    167         reserved3:       0x00000000
    168       - sectname:        __debug_pubnames
    169         segname:         __DWARF
    170         addr:            0x0000000100003045
    171         size:            27
    172         offset:          0x00002045
    173         align:           0
    174         reloff:          0x00000000
    175         nreloc:          0
    176         flags:           0x00000000
    177         reserved1:       0x00000000
    178         reserved2:       0x00000000
    179         reserved3:       0x00000000
    180       - sectname:        __debug_pubtypes
    181         segname:         __DWARF
    182         addr:            0x0000000100003060
    183         size:            35
    184         offset:          0x00002060
    185         align:           0
    186         reloff:          0x00000000
    187         nreloc:          0
    188         flags:           0x00000000
    189         reserved1:       0x00000000
    190         reserved2:       0x00000000
    191         reserved3:       0x00000000
    192       - sectname:        __debug_aranges
    193         segname:         __DWARF
    194         addr:            0x0000000100003083
    195         size:            48
    196         offset:          0x00002083
    197         align:           0
    198         reloff:          0x00000000
    199         nreloc:          0
    200         flags:           0x00000000
    201         reserved1:       0x00000000
    202         reserved2:       0x00000000
    203         reserved3:       0x00000000
    204       - sectname:        __debug_info
    205         segname:         __DWARF
    206         addr:            0x00000001000030B3
    207         size:            121
    208         offset:          0x000020B3
    209         align:           0
    210         reloff:          0x00000000
    211         nreloc:          0
    212         flags:           0x00000000
    213         reserved1:       0x00000000
    214         reserved2:       0x00000000
    215         reserved3:       0x00000000
    216       - sectname:        __debug_abbrev
    217         segname:         __DWARF
    218         addr:            0x000000010000312C
    219         size:            76
    220         offset:          0x0000212C
    221         align:           0
    222         reloff:          0x00000000
    223         nreloc:          0
    224         flags:           0x00000000
    225         reserved1:       0x00000000
    226         reserved2:       0x00000000
    227         reserved3:       0x00000000
    228       - sectname:        __debug_str
    229         segname:         __DWARF
    230         addr:            0x0000000100003178
    231         size:            142
    232         offset:          0x00002178
    233         align:           0
    234         reloff:          0x00000000
    235         nreloc:          0
    236         flags:           0x00000000
    237         reserved1:       0x00000000
    238         reserved2:       0x00000000
    239         reserved3:       0x00000000
    240       - sectname:        __apple_names
    241         segname:         __DWARF
    242         addr:            0x0000000100003206
    243         size:            60
    244         offset:          0x00002206
    245         align:           0
    246         reloff:          0x00000000
    247         nreloc:          0
    248         flags:           0x00000000
    249         reserved1:       0x00000000
    250         reserved2:       0x00000000
    251         reserved3:       0x00000000
    252       - sectname:        __apple_namespac
    253         segname:         __DWARF
    254         addr:            0x0000000100003242
    255         size:            36
    256         offset:          0x00002242
    257         align:           0
    258         reloff:          0x00000000
    259         nreloc:          0
    260         flags:           0x00000000
    261         reserved1:       0x00000000
    262         reserved2:       0x00000000
    263         reserved3:       0x00000000
    264       - sectname:        __apple_types
    265         segname:         __DWARF
    266         addr:            0x0000000100003266
    267         size:            114
    268         offset:          0x00002266
    269         align:           0
    270         reloff:          0x00000000
    271         nreloc:          0
    272         flags:           0x00000000
    273         reserved1:       0x00000000
    274         reserved2:       0x00000000
    275         reserved3:       0x00000000
    276       - sectname:        __apple_objc
    277         segname:         __DWARF
    278         addr:            0x00000001000032D8
    279         size:            36
    280         offset:          0x000022D8
    281         align:           0
    282         reloff:          0x00000000
    283         nreloc:          0
    284         flags:           0x00000000
    285         reserved1:       0x00000000
    286         reserved2:       0x00000000
    287         reserved3:       0x00000000
    288 LinkEditData:    
    289   NameList:        
    290     - n_strx:          2
    291       n_type:          0x0F
    292       n_sect:          1
    293       n_desc:          16
    294       n_value:         4294967296
    295     - n_strx:          22
    296       n_type:          0x0F
    297       n_sect:          1
    298       n_desc:          0
    299       n_value:         4294971216
    300   StringTable:     
    301     - ''
    302     - ''
    303     - __mh_execute_header
    304     - _main
    305 DWARF:           
    306   debug_abbrev:    
    307     - Code:            0x00000001
    308       Tag:             DW_TAG_compile_unit
    309       Children:        DW_CHILDREN_yes
    310       Attributes:      
    311         - Attribute:       DW_AT_producer
    312           Form:            DW_FORM_strp
    313         - Attribute:       DW_AT_language
    314           Form:            DW_FORM_data2
    315         - Attribute:       DW_AT_name
    316           Form:            DW_FORM_strp
    317         - Attribute:       DW_AT_stmt_list
    318           Form:            DW_FORM_sec_offset
    319         - Attribute:       DW_AT_comp_dir
    320           Form:            DW_FORM_strp
    321         - Attribute:       DW_AT_low_pc
    322           Form:            DW_FORM_addr
    323         - Attribute:       DW_AT_high_pc
    324           Form:            DW_FORM_data4
    325     - Code:            0x00000002
    326       Tag:             DW_TAG_subprogram
    327       Children:        DW_CHILDREN_yes
    328       Attributes:      
    329         - Attribute:       DW_AT_low_pc
    330           Form:            DW_FORM_addr
    331         - Attribute:       DW_AT_high_pc
    332           Form:            DW_FORM_data4
    333         - Attribute:       DW_AT_frame_base
    334           Form:            DW_FORM_exprloc
    335         - Attribute:       DW_AT_name
    336           Form:            DW_FORM_strp
    337         - Attribute:       DW_AT_decl_file
    338           Form:            DW_FORM_data1
    339         - Attribute:       DW_AT_decl_line
    340           Form:            DW_FORM_data1
    341         - Attribute:       DW_AT_prototyped
    342           Form:            DW_FORM_flag_present
    343         - Attribute:       DW_AT_type
    344           Form:            DW_FORM_ref4
    345         - Attribute:       DW_AT_external
    346           Form:            DW_FORM_flag_present
    347     - Code:            0x00000003
    348       Tag:             DW_TAG_formal_parameter
    349       Children:        DW_CHILDREN_no
    350       Attributes:      
    351         - Attribute:       DW_AT_location
    352           Form:            DW_FORM_exprloc
    353         - Attribute:       DW_AT_name
    354           Form:            DW_FORM_strp
    355         - Attribute:       DW_AT_decl_file
    356           Form:            DW_FORM_data1
    357         - Attribute:       DW_AT_decl_line
    358           Form:            DW_FORM_data1
    359         - Attribute:       DW_AT_type
    360           Form:            DW_FORM_ref4
    361     - Code:            0x00000004
    362       Tag:             DW_TAG_base_type
    363       Children:        DW_CHILDREN_no
    364       Attributes:      
    365         - Attribute:       DW_AT_name
    366           Form:            DW_FORM_strp
    367         - Attribute:       DW_AT_encoding
    368           Form:            DW_FORM_data1
    369         - Attribute:       DW_AT_byte_size
    370           Form:            DW_FORM_data1
    371     - Code:            0x00000005
    372       Tag:             DW_TAG_pointer_type
    373       Children:        DW_CHILDREN_no
    374       Attributes:      
    375         - Attribute:       DW_AT_type
    376           Form:            DW_FORM_ref4
    377   debug_aranges:   
    378     - Length:          
    379         TotalLength:     44
    380       Version:         2
    381       CuOffset:        0
    382       AddrSize:        8
    383       SegSize:         0
    384       Descriptors:     
    385         - Address:         0x0000000100000F50
    386           Length:          52
    387   debug_info:      
    388     - Length:          
    389         TotalLength:     117
    390       Version:         4
    391       AbbrOffset:      0
    392       AddrSize:        8
    393       Entries:         
    394         - AbbrCode:        0x00000001
    395           Values:          
    396             - Value:           0x0000000000000001
    397             - Value:           0x000000000000000C
    398             - Value:           0x0000000000000038
    399             - Value:           0x0000000000000000
    400             - Value:           0x0000000000000046
    401             - Value:           0x0000000100000F50
    402             - Value:           0x0000000000000034
    403         - AbbrCode:        0x00000002
    404           Values:          
    405             - Value:           0x0000000100000F50
    406             - Value:           0x0000000000000034
    407             - Value:           0x0000000000000001
    408               BlockData:       
    409                 - 0x56
    410             - Value:           0x0000000000000076
    411             - Value:           0x0000000000000001
    412             - Value:           0x0000000000000003
    413             - Value:           0x0000000000000001
    414             - Value:           0x0000000000000060
    415             - Value:           0x0000000000000001
    416         - AbbrCode:        0x00000003
    417           Values:          
    418             - Value:           0x0000000000000002
    419               BlockData:       
    420                 - 0x91
    421                 - 0x78
    422             - Value:           0x000000000000007B
    423             - Value:           0x0000000000000001
    424             - Value:           0x0000000000000003
    425             - Value:           0x0000000000000060
    426         - AbbrCode:        0x00000003
    427           Values:          
    428             - Value:           0x0000000000000002
    429               BlockData:       
    430                 - 0x91
    431                 - 0x70
    432             - Value:           0x0000000000000080
    433             - Value:           0x0000000000000001
    434             - Value:           0x0000000000000003
    435             - Value:           0x0000000000000067
    436         - AbbrCode:        0x00000000
    437           Values:          
    438         - AbbrCode:        0x00000004
    439           Values:          
    440             - Value:           0x0000000000000085
    441             - Value:           0x0000000000000005
    442             - Value:           0x0000000000000004
    443         - AbbrCode:        0x00000005
    444           Values:          
    445             - Value:           0x000000000000006C
    446         - AbbrCode:        0x00000005
    447           Values:          
    448             - Value:           0x0000000000000071
    449         - AbbrCode:        0x00000004
    450           Values:          
    451             - Value:           0x0000000000000089
    452             - Value:           0x0000000000000006
    453             - Value:           0x0000000000000001
    454         - AbbrCode:        0x00000000
    455           Values:          
    456   debug_line:      
    457     - Length:          
    458         TotalLength:     65
    459       Version:         2
    460       PrologueLength:  36
    461       MinInstLength:   1
    462       DefaultIsStmt:   1
    463       LineBase:        251
    464       LineRange:       14
    465       OpcodeBase:      13
    466       StandardOpcodeLengths: 
    467         - 0
    468         - 1
    469         - 1
    470         - 1
    471         - 1
    472         - 0
    473         - 0
    474         - 0
    475         - 1
    476         - 0
    477         - 0
    478         - 1
    479       IncludeDirs:     
    480       Files:           
    481         - Name:            hello_world.c
    482           DirIdx:          0
    483           ModTime:         0
    484           Length:          0
    485       Opcodes:         
    486         - Opcode:          DW_LNS_extended_op
    487           ExtLen:          9
    488           SubOpcode:       DW_LNE_set_address
    489           Data:            4294971216
    490         - Opcode:          0x14
    491           Data:            4294971216
    492         - Opcode:          DW_LNS_set_column
    493           Data:            3
    494         - Opcode:          DW_LNS_set_prologue_end
    495           Data:            3
    496         - Opcode:          DW_LNS_const_add_pc
    497           Data:            3
    498         - Opcode:          0xBB
    499           Data:            3
    500         - Opcode:          0xBB
    501           Data:            3
    502         - Opcode:          DW_LNS_advance_pc
    503           Data:            11
    504         - Opcode:          DW_LNS_extended_op
    505           ExtLen:          1
    506           SubOpcode:       DW_LNE_end_sequence
    507           Data:            11
    508 ...
    509 ...
    510 
    511 
    512 #CHECK: DWARF:           
    513 #CHECK:   debug_info:      
    514 #CHECK:     - Length:          
    515 #CHECK:         TotalLength:     117
    516 #CHECK:       Version:         4
    517 #CHECK:       AbbrOffset:      0
    518 #CHECK:       AddrSize:        8
    519 #CHECK:       Entries:         
    520 #CHECK:         - AbbrCode:        0x00000001
    521 #CHECK:           Values:          
    522 #CHECK:             - Value:           0x0000000000000001
    523 #CHECK:             - Value:           0x000000000000000C
    524 #CHECK:             - Value:           0x0000000000000038
    525 #CHECK:             - Value:           0x0000000000000000
    526 #CHECK:             - Value:           0x0000000000000046
    527 #CHECK:             - Value:           0x0000000100000F50
    528 #CHECK:             - Value:           0x0000000000000034
    529 #CHECK:         - AbbrCode:        0x00000002
    530 #CHECK:           Values:          
    531 #CHECK:             - Value:           0x0000000100000F50
    532 #CHECK:             - Value:           0x0000000000000034
    533 #CHECK:             - Value:           0x0000000000000001
    534 #CHECK:               BlockData:       
    535 #CHECK:                 - 0x56
    536 #CHECK:             - Value:           0x0000000000000076
    537 #CHECK:             - Value:           0x0000000000000001
    538 #CHECK:             - Value:           0x0000000000000003
    539 #CHECK:             - Value:           0x0000000000000001
    540 #CHECK:             - Value:           0x0000000000000060
    541 #CHECK:             - Value:           0x0000000000000001
    542 #CHECK:         - AbbrCode:        0x00000003
    543 #CHECK:           Values:          
    544 #CHECK:             - Value:           0x0000000000000002
    545 #CHECK:               BlockData:       
    546 #CHECK:                 - 0x91
    547 #CHECK:                 - 0x78
    548 #CHECK:             - Value:           0x000000000000007B
    549 #CHECK:             - Value:           0x0000000000000001
    550 #CHECK:             - Value:           0x0000000000000003
    551 #CHECK:             - Value:           0x0000000000000060
    552 #CHECK:         - AbbrCode:        0x00000003
    553 #CHECK:           Values:          
    554 #CHECK:             - Value:           0x0000000000000002
    555 #CHECK:               BlockData:       
    556 #CHECK:                 - 0x91
    557 #CHECK:                 - 0x70
    558 #CHECK:             - Value:           0x0000000000000080
    559 #CHECK:             - Value:           0x0000000000000001
    560 #CHECK:             - Value:           0x0000000000000003
    561 #CHECK:             - Value:           0x0000000000000067
    562 #CHECK:         - AbbrCode:        0x00000000
    563 #CHECK:           Values:          
    564 #CHECK:         - AbbrCode:        0x00000004
    565 #CHECK:           Values:          
    566 #CHECK:             - Value:           0x0000000000000085
    567 #CHECK:             - Value:           0x0000000000000005
    568 #CHECK:             - Value:           0x0000000000000004
    569 #CHECK:         - AbbrCode:        0x00000005
    570 #CHECK:           Values:          
    571 #CHECK:             - Value:           0x000000000000006C
    572 #CHECK:         - AbbrCode:        0x00000005
    573 #CHECK:           Values:          
    574 #CHECK:             - Value:           0x0000000000000071
    575 #CHECK:         - AbbrCode:        0x00000004
    576 #CHECK:           Values:          
    577 #CHECK:             - Value:           0x0000000000000089
    578 #CHECK:             - Value:           0x0000000000000006
    579 #CHECK:             - Value:           0x0000000000000001
    580 #CHECK:         - AbbrCode:        0x00000000
    581 #CHECK:           Values:          
    582