brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.1 KiB · 5a2ec2b Raw
559 lines · yaml
1## Test that reconstructs a MachO binary from YAML and generates a callsite-enabled gsym from it - and then verifies the gsym.2## See llvm/test/tools/llvm-gsymutil/ARM_AArch64/macho-gsym-callsite-info.test for the script to generate this yaml file3 4# RUN: split-file %s %t5# RUN: yaml2obj %t/call_sites.exe.yaml -o %t/call_sites.exe6 7# RUN: llvm-gsymutil --num-threads=1 --convert=%t/call_sites.exe --callsites-yaml-file=%t/callsites.yaml -o %t/call_sites_exe.gsym8 9# Dump the GSYM file and check the output for callsite information10# RUN: llvm-gsymutil %t/call_sites_exe.gsym | FileCheck --check-prefix=CHECK-GSYM %s11 12 13# CHECK-GSYM:      FunctionInfo @ 0x[[#%x,]]: [0x[[#%x,]] - 0x[[#%x,]]) "func_mainBin_dec_call_everything"14# CHECK-GSYM-NEXT: CallSites (by relative return offset):15# CHECK-GSYM-NEXT:   0x[[#%x,]] Flags[InternalCall] MatchRegex[func_mainBin_dec_01]16# CHECK-GSYM-NEXT:   0x[[#%x,]] Flags[InternalCall] MatchRegex[func_mainBin_dec_02]17# CHECK-GSYM-NEXT:   0x[[#%x,]] Flags[InternalCall] MatchRegex[func_mainBin_dec_03]18# CHECK-GSYM-NEXT:   0x[[#%x,]] Flags[InternalCall] MatchRegex[func_mainBin_inc_01]19# CHECK-GSYM-NEXT:   0x[[#%x,]] Flags[InternalCall] MatchRegex[func_mainBin_inc_02]20# CHECK-GSYM-NEXT:   0x[[#%x,]] Flags[InternalCall] MatchRegex[func_mainBin_inc_03]21# CHECK-GSYM-NEXT:   0x[[#%x,]] Flags[None] MatchRegex[.*func.*]22# CHECK-GSYM-NEXT:   0x[[#%x,]] Flags[ExternalCall] MatchRegex[.*extern_func.*]23 24 25#--- callsites.yaml26functions:27  - name: func_mainBin_dec_call_everything28    callsites:29      - return_offset: 0x0C30        match_regex: ["func_mainBin_dec_01"]31        flags:32          - "InternalCall"33      - return_offset: 0x1034        match_regex: ["func_mainBin_dec_02"]35        flags:36          - "InternalCall"37      - return_offset: 0x1438        match_regex: ["func_mainBin_dec_03"]39        flags:40          - "InternalCall"41      - return_offset: 2442        match_regex: ["func_mainBin_inc_01"]43        flags:44          - "InternalCall"45      - return_offset: 2846        match_regex: ["func_mainBin_inc_02"]47        flags:48          - "InternalCall"49      - return_offset: 3250        match_regex: ["func_mainBin_inc_03"]51        flags:52          - "InternalCall"53      - return_offset: 4454        match_regex: [".*func.*"]55      - return_offset: 5656        match_regex: [".*extern_func.*"]57        flags:58          - "ExternalCall"59 60 61#--- call_sites.exe.yaml62--- !mach-o63FileHeader:64  magic:           0xFEEDFACF65  cputype:         0x100000C66  cpusubtype:      0x067  filetype:        0x268  ncmds:           1469  sizeofcmds:      76070  flags:           0x20008571  reserved:        0x072LoadCommands:73  - cmd:             LC_SEGMENT_6474    cmdsize:         7275    segname:         __PAGEZERO76    vmaddr:          077    vmsize:          429496729678    fileoff:         079    filesize:        080    maxprot:         081    initprot:        082    nsects:          083    flags:           084  - cmd:             LC_SEGMENT_6485    cmdsize:         15286    segname:         __TEXT87    vmaddr:          429496729688    vmsize:          1638489    fileoff:         090    filesize:        1638491    maxprot:         592    initprot:        593    nsects:          194    flags:           095    Sections:96      - sectname:        __text97        segname:         __TEXT98        addr:            0x10000033899        size:            216100        offset:          0x338101        align:           2102        reloff:          0x0103        nreloc:          0104        flags:           0x80000400105        reserved1:       0x0106        reserved2:       0x0107        reserved3:       0x0108        content:         28000090090140B929050051090100B9C0035FD628000090090140B929050051090100B9C0035FD628000090090140B929050051090100B9C0035FD628000090090140B929050011090100B9C0035FD628000090090140B929050011090100B9C0035FD628000090090140B929050011090100B9C0035FD6FD7BBFA9FD030091E0FFFF97E4FFFF97E8FFFF97ECFFFF97F0FFFF97F4FFFF971F2003D5A8E1015800013FD61F2003D588E1015800013FD6280000901F0100B9FD7BC1A8C0035FD6FD7BBFA9FD030091ECFFFF9700008052FD7BC1A8C0035FD6109  - cmd:             LC_SEGMENT_64110    cmdsize:         152111    segname:         __DATA112    vmaddr:          4294983680113    vmsize:          16384114    fileoff:         16384115    filesize:        0116    maxprot:         3117    initprot:        3118    nsects:          1119    flags:           0120    Sections:121      - sectname:        __common122        segname:         __DATA123        addr:            0x100004000124        size:            24125        offset:          0x0126        align:           3127        reloff:          0x0128        nreloc:          0129        flags:           0x1130        reserved1:       0x0131        reserved2:       0x0132        reserved3:       0x0133  - cmd:             LC_SEGMENT_64134    cmdsize:         72135    segname:         __LINKEDIT136    vmaddr:          4295000064137    vmsize:          1648138    fileoff:         16384139    filesize:        1648140    maxprot:         1141    initprot:        1142    nsects:          0143    flags:           0144  - cmd:             LC_DYLD_INFO_ONLY145    cmdsize:         48146    rebase_off:      0147    rebase_size:     0148    bind_off:        0149    bind_size:       0150    weak_bind_off:   0151    weak_bind_size:  0152    lazy_bind_off:   0153    lazy_bind_size:  0154    export_off:      16384155    export_size:     232156  - cmd:             LC_SYMTAB157    cmdsize:         24158    symoff:          16632159    nsyms:           34160    stroff:          17176161    strsize:         568162  - cmd:             LC_DYSYMTAB163    cmdsize:         80164    ilocalsym:       0165    nlocalsym:       22166    iextdefsym:      22167    nextdefsym:      12168    iundefsym:       34169    nundefsym:       0170    tocoff:          0171    ntoc:            0172    modtaboff:       0173    nmodtab:         0174    extrefsymoff:    0175    nextrefsyms:     0176    indirectsymoff:  0177    nindirectsyms:   0178    extreloff:       0179    nextrel:         0180    locreloff:       0181    nlocrel:         0182  - cmd:             LC_LOAD_DYLINKER183    cmdsize:         32184    name:            12185    Content:         '/usr/lib/dyld'186    ZeroPadBytes:    7187  - cmd:             LC_UUID188    cmdsize:         24189    uuid:            4C4C44E9-5555-3144-A1D3-328233D00078190  - cmd:             LC_BUILD_VERSION191    cmdsize:         32192    platform:        1193    minos:           720896194    sdk:             720896195    ntools:          1196    Tools:197      - tool:            4198        version:         1310720199  - cmd:             LC_MAIN200    cmdsize:         24201    entryoff:        1016202    stacksize:       0203  - cmd:             LC_FUNCTION_STARTS204    cmdsize:         16205    dataoff:         16616206    datasize:        16207  - cmd:             LC_DATA_IN_CODE208    cmdsize:         16209    dataoff:         16632210    datasize:        0211  - cmd:             LC_CODE_SIGNATURE212    cmdsize:         16213    dataoff:         17744214    datasize:        288215LinkEditData:216  ExportTrie:217    TerminalSize:    0218    NodeOffset:      0219    Name:            ''220    Flags:           0x0221    Address:         0x0222    Other:           0x0223    ImportName:      ''224    Children:225      - TerminalSize:    0226        NodeOffset:      5227        Name:            _228        Flags:           0x0229        Address:         0x0230        Other:           0x0231        ImportName:      ''232        Children:233          - TerminalSize:    2234            NodeOffset:      52235            Name:            _mh_execute_header236            Flags:           0x0237            Address:         0x0238            Other:           0x0239            ImportName:      ''240          - TerminalSize:    3241            NodeOffset:      56242            Name:            main243            Flags:           0x0244            Address:         0x3F8245            Other:           0x0246            ImportName:      ''247          - TerminalSize:    0248            NodeOffset:      61249            Name:            g_250            Flags:           0x0251            Address:         0x0252            Other:           0x0253            ImportName:      ''254            Children:255              - TerminalSize:    4256                NodeOffset:      104257                Name:            volatile_var258                Flags:           0x0259                Address:         0x4000260                Other:           0x0261                ImportName:      ''262              - TerminalSize:    4263                NodeOffset:      110264                Name:            func_ptr265                Flags:           0x0266                Address:         0x4008267                Other:           0x0268                ImportName:      ''269              - TerminalSize:    4270                NodeOffset:      116271                Name:            extern_func_ptr272                Flags:           0x0273                Address:         0x4010274                Other:           0x0275                ImportName:      ''276          - TerminalSize:    0277            NodeOffset:      122278            Name:            func_mainBin_279            Flags:           0x0280            Address:         0x0281            Other:           0x0282            ImportName:      ''283            Children:284              - TerminalSize:    0285                NodeOffset:      139286                Name:            dec_287                Flags:           0x0288                Address:         0x0289                Other:           0x0290                ImportName:      ''291                Children:292                  - TerminalSize:    3293                    NodeOffset:      163294                    Name:            call_everything295                    Flags:           0x0296                    Address:         0x3B0297                    Other:           0x0298                    ImportName:      ''299                  - TerminalSize:    0300                    NodeOffset:      168301                    Name:            '0'302                    Flags:           0x0303                    Address:         0x0304                    Other:           0x0305                    ImportName:      ''306                    Children:307                      - TerminalSize:    3308                        NodeOffset:      182309                        Name:            '1'310                        Flags:           0x0311                        Address:         0x338312                        Other:           0x0313                        ImportName:      ''314                      - TerminalSize:    3315                        NodeOffset:      187316                        Name:            '3'317                        Flags:           0x0318                        Address:         0x360319                        Other:           0x0320                        ImportName:      ''321                      - TerminalSize:    3322                        NodeOffset:      192323                        Name:            '2'324                        Flags:           0x0325                        Address:         0x34C326                        Other:           0x0327                        ImportName:      ''328              - TerminalSize:    0329                NodeOffset:      197330                Name:            inc_0331                Flags:           0x0332                Address:         0x0333                Other:           0x0334                ImportName:      ''335                Children:336                  - TerminalSize:    3337                    NodeOffset:      211338                    Name:            '2'339                    Flags:           0x0340                    Address:         0x388341                    Other:           0x0342                    ImportName:      ''343                  - TerminalSize:    3344                    NodeOffset:      216345                    Name:            '1'346                    Flags:           0x0347                    Address:         0x374348                    Other:           0x0349                    ImportName:      ''350                  - TerminalSize:    3351                    NodeOffset:      221352                    Name:            '3'353                    Flags:           0x0354                    Address:         0x39C355                    Other:           0x0356                    ImportName:      ''357  NameList:358    - n_strx:          235359      n_type:          0x64360      n_sect:          0361      n_desc:          0362      n_value:         0363    - n_strx:          295364      n_type:          0x66365      n_sect:          0366      n_desc:          1367      n_value:         0368    - n_strx:          353369      n_type:          0x24370      n_sect:          1371      n_desc:          0372      n_value:         4294968312373    - n_strx:          1374      n_type:          0x24375      n_sect:          0376      n_desc:          0377      n_value:         24378    - n_strx:          359379      n_type:          0x24380      n_sect:          1381      n_desc:          0382      n_value:         4294968120383    - n_strx:          1384      n_type:          0x24385      n_sect:          0386      n_desc:          0387      n_value:         20388    - n_strx:          380389      n_type:          0x24390      n_sect:          1391      n_desc:          0392      n_value:         4294968140393    - n_strx:          1394      n_type:          0x24395      n_sect:          0396      n_desc:          0397      n_value:         20398    - n_strx:          401399      n_type:          0x24400      n_sect:          1401      n_desc:          0402      n_value:         4294968160403    - n_strx:          1404      n_type:          0x24405      n_sect:          0406      n_desc:          0407      n_value:         20408    - n_strx:          422409      n_type:          0x24410      n_sect:          1411      n_desc:          0412      n_value:         4294968180413    - n_strx:          1414      n_type:          0x24415      n_sect:          0416      n_desc:          0417      n_value:         20418    - n_strx:          443419      n_type:          0x24420      n_sect:          1421      n_desc:          0422      n_value:         4294968200423    - n_strx:          1424      n_type:          0x24425      n_sect:          0426      n_desc:          0427      n_value:         20428    - n_strx:          464429      n_type:          0x24430      n_sect:          1431      n_desc:          0432      n_value:         4294968220433    - n_strx:          1434      n_type:          0x24435      n_sect:          0436      n_desc:          0437      n_value:         20438    - n_strx:          485439      n_type:          0x24440      n_sect:          1441      n_desc:          0442      n_value:         4294968240443    - n_strx:          1444      n_type:          0x24445      n_sect:          0446      n_desc:          0447      n_value:         72448    - n_strx:          519449      n_type:          0x20450      n_sect:          2451      n_desc:          0452      n_value:         4294983680453    - n_strx:          535454      n_type:          0x20455      n_sect:          2456      n_desc:          0457      n_value:         4294983688458    - n_strx:          547459      n_type:          0x20460      n_sect:          2461      n_desc:          0462      n_value:         4294983696463    - n_strx:          1464      n_type:          0x64465      n_sect:          1466      n_desc:          0467      n_value:         0468    - n_strx:          2469      n_type:          0xF470      n_sect:          1471      n_desc:          0472      n_value:         4294968312473    - n_strx:          8474      n_type:          0xF475      n_sect:          1476      n_desc:          0477      n_value:         4294968120478    - n_strx:          29479      n_type:          0xF480      n_sect:          1481      n_desc:          0482      n_value:         4294968140483    - n_strx:          50484      n_type:          0xF485      n_sect:          1486      n_desc:          0487      n_value:         4294968160488    - n_strx:          71489      n_type:          0xF490      n_sect:          1491      n_desc:          0492      n_value:         4294968180493    - n_strx:          92494      n_type:          0xF495      n_sect:          1496      n_desc:          0497      n_value:         4294968200498    - n_strx:          113499      n_type:          0xF500      n_sect:          1501      n_desc:          0502      n_value:         4294968220503    - n_strx:          134504      n_type:          0xF505      n_sect:          1506      n_desc:          0507      n_value:         4294968240508    - n_strx:          168509      n_type:          0xF510      n_sect:          2511      n_desc:          0512      n_value:         4294983680513    - n_strx:          184514      n_type:          0xF515      n_sect:          2516      n_desc:          0517      n_value:         4294983688518    - n_strx:          196519      n_type:          0xF520      n_sect:          2521      n_desc:          0522      n_value:         4294983696523    - n_strx:          215524      n_type:          0xF525      n_sect:          1526      n_desc:          16527      n_value:         4294967296528  StringTable:529    - ' '530    - _main531    - _func_mainBin_dec_01532    - _func_mainBin_dec_02533    - _func_mainBin_dec_03534    - _func_mainBin_inc_01535    - _func_mainBin_inc_02536    - _func_mainBin_inc_03537    - _func_mainBin_dec_call_everything538    - _g_volatile_var539    - _g_func_ptr540    - _g_extern_func_ptr541    - __mh_execute_header542    - '/tmp/_______________________________________/call_sites.cpp'543    - '/tmp/_______________________________________/call_sites.o'544    - _main545    - _func_mainBin_dec_01546    - _func_mainBin_dec_02547    - _func_mainBin_dec_03548    - _func_mainBin_inc_01549    - _func_mainBin_inc_02550    - _func_mainBin_inc_03551    - _func_mainBin_dec_call_everything552    - _g_volatile_var553    - _g_func_ptr554    - _g_extern_func_ptr555    - ''556    - ''557  FunctionStarts:  [ 0x338, 0x34C, 0x360, 0x374, 0x388, 0x39C, 0x3B0, 0x3F8 ]558...559