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