brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.4 KiB · d8741af Raw
351 lines · yaml
1# RUN: yaml2obj %s -o %t.obj2# RUN: lld-link %t.obj -nodefaultlib -entry:main -debug -out:%t.exe -pdb:%t.pdb3# RUN: llvm-pdbutil dump -symbols -globals %t.pdb | FileCheck %s4 5# To regenerate the object file:6# $ cat symbol-types.c7# struct Foo { int x; };8# typedef struct Foo UDT_Foo;9# UDT_Foo global_foo = {42};10# int main() { return global_foo.x; }11# $ cl -c -Z7 symbol-types.c12 13# Note that the type of 'global' goes from 0x1005 in the object file to 0x100414# in the PDB because the LF_FUNC_ID is moved to the id stream.15 16# CHECK-LABEL:                  Global Symbols17# CHECK-NEXT:  ============================================================18# CHECK-NEXT:   Records19# CHECK-NEXT:       48 | S_PROCREF [size = 20] `main`20# CHECK-NEXT:            module = 1, sum name = 0, offset = 11621# CHECK-NEXT:       96 | S_UDT [size = 16] `UDT_Foo`22# CHECK-NEXT:            original type = 0x100423# CHECK-NEXT:      112 | S_UDT [size = 12] `Foo`24# CHECK-NEXT:            original type = 0x100425# CHECK-NEXT:       68 | S_GDATA32 [size = 28] `global_foo`26# CHECK-NEXT:            type = 0x1004 (Foo), addr = 0003:000027 28# CHECK:                           Symbols29# CHECK: ============================================================30# CHECK-LABEL:   Mod 0000 | `{{.*}}pdb-symbol-types.yaml.tmp.obj`:31# CHECK:     4 | S_OBJNAME [size = 52] sig=0, `C:\src\llvm-project\build\symbol-types.obj`32# CHECK:    56 | S_COMPILE3 [size = 60]33# CHECK:         machine = intel x86-x64, Ver = Microsoft (R) Optimizing Compiler, language = c34# CHECK:         frontend = 19.0.24215.1, backend = 19.0.24215.135# CHECK:         flags = security checks | hot patchable36# CHECK:   116 | S_GPROC32 [size = 44] `main`37# CHECK:         parent = 0, end = 192, addr = 0001:0000, code size = 738# CHECK:         debug start = 0, debug end = 6, flags = none39# CHECK:   160 | S_FRAMEPROC [size = 32]40# CHECK:         size = 0, padding size = 0, offset to padding = 041# CHECK:         bytes of callee saved registers = 0, exception handler addr = 0000:000042# CHECK:         flags = has async eh | opt speed43# CHECK:   192 | S_END [size = 4]44# CHECK:   196 | S_BUILDINFO [size = 8] BuildId = `0x100A`45# CHECK-LABEL:   Mod 0001 | `* Linker *`:46 47--- !COFF48header:49  Machine:         IMAGE_FILE_MACHINE_AMD6450  Characteristics: [  ]51sections:52  - Name:            .drectve53    Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]54    Alignment:       155    SectionData:     2020202F44454641554C544C49423A224C4942434D5422202F44454641554C544C49423A224F4C444E414D4553222056  - Name:            '.debug$S'57    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]58    Alignment:       159    Subsections:60      - !Symbols61        Records:62          - Kind:            S_OBJNAME63            ObjNameSym:64              Signature:       065              ObjectName:      'C:\src\llvm-project\build\symbol-types.obj'66          - Kind:            S_COMPILE367            Compile3Sym:68              Flags:           [ SecurityChecks, HotPatch ]69              Machine:         X6470              FrontendMajor:   1971              FrontendMinor:   072              FrontendBuild:   2421573              FrontendQFE:     174              BackendMajor:    1975              BackendMinor:    076              BackendBuild:    2421577              BackendQFE:      178              Version:         'Microsoft (R) Optimizing Compiler'79      - !Symbols80        Records:81          - Kind:            S_GPROC32_ID82            ProcSym:83              CodeSize:        784              DbgStart:        085              DbgEnd:          686              FunctionType:    409887              Flags:           [  ]88              DisplayName:     main89          - Kind:            S_FRAMEPROC90            FrameProcSym:91              TotalFrameBytes: 092              PaddingFrameBytes: 093              OffsetToPadding: 094              BytesOfCalleeSavedRegisters: 095              OffsetOfExceptionHandler: 096              SectionIdOfExceptionHandler: 097              Flags:           [ AsynchronousExceptionHandling, OptimizedForSpeed ]98          - Kind:            S_PROC_ID_END99            ScopeEndSym:100      - !Lines101        CodeSize:        7102        Flags:           [  ]103        RelocOffset:     0104        RelocSegment:    0105        Blocks:106          - FileName:        'c:\src\llvm-project\build\symbol-types.c'107            Lines:108              - Offset:          0109                LineStart:       4110                IsStatement:     true111                EndDelta:        0112              - Offset:          0113                LineStart:       5114                IsStatement:     true115                EndDelta:        0116              - Offset:          6117                LineStart:       6118                IsStatement:     true119                EndDelta:        0120            Columns:121      - !Symbols122        Records:123          - Kind:            S_GDATA32124            DataSym:125              Type:            4101126              DisplayName:     global_foo127          - Kind:            S_UDT128            UDTSym:129              Type:            4101130              UDTName:         UDT_Foo131          - Kind:            S_UDT132            UDTSym:133              Type:            4101134              UDTName:         Foo135      - !FileChecksums136        Checksums:137          - FileName:        'c:\src\llvm-project\build\symbol-types.c'138            Kind:            MD5139            Checksum:        F833E1A4909FF6FEC5689A664F3BE725140      - !StringTable141        Strings:142          - 'c:\src\llvm-project\build\symbol-types.c'143      - !Symbols144        Records:145          - Kind:            S_BUILDINFO146            BuildInfoSym:147              BuildId:         4111148    Relocations:149      - VirtualAddress:  164150        SymbolName:      main151        Type:            IMAGE_REL_AMD64_SECREL152      - VirtualAddress:  168153        SymbolName:      main154        Type:            IMAGE_REL_AMD64_SECTION155      - VirtualAddress:  220156        SymbolName:      main157        Type:            IMAGE_REL_AMD64_SECREL158      - VirtualAddress:  224159        SymbolName:      main160        Type:            IMAGE_REL_AMD64_SECTION161      - VirtualAddress:  284162        SymbolName:      global_foo163        Type:            IMAGE_REL_AMD64_SECREL164      - VirtualAddress:  288165        SymbolName:      global_foo166        Type:            IMAGE_REL_AMD64_SECTION167  - Name:            '.debug$T'168    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]169    Alignment:       1170    Types:171      - Kind:            LF_ARGLIST172        ArgList:173          ArgIndices:      [ 0 ]174      - Kind:            LF_PROCEDURE175        Procedure:176          ReturnType:      116177          CallConv:        NearC178          Options:         [ None ]179          ParameterCount:  0180          ArgumentList:    4096181      - Kind:            LF_FUNC_ID182        FuncId:183          ParentScope:     0184          FunctionType:    4097185          Name:            main186      - Kind:            LF_STRUCTURE187        Class:188          MemberCount:     0189          Options:         [ None, ForwardReference, HasUniqueName ]190          FieldList:       0191          Name:            Foo192          UniqueName:      '.?AUFoo@@'193          DerivationList:  0194          VTableShape:     0195          Size:            0196      - Kind:            LF_FIELDLIST197        FieldList:198          - Kind:            LF_MEMBER199            DataMember:200              Attrs:           3201              Type:            116202              FieldOffset:     0203              Name:            x204      - Kind:            LF_STRUCTURE205        Class:206          MemberCount:     1207          Options:         [ None, HasUniqueName ]208          FieldList:       4100209          Name:            Foo210          UniqueName:      '.?AUFoo@@'211          DerivationList:  0212          VTableShape:     0213          Size:            4214      - Kind:            LF_STRING_ID215        StringId:216          Id:              0217          String:          'c:\src\llvm-project\build\symbol-types.c'218      - Kind:            LF_UDT_SRC_LINE219        UdtSourceLine:220          UDT:             4101221          SourceFile:      4102222          LineNumber:      1223      - Kind:            LF_STRING_ID224        StringId:225          Id:              0226          String:          'C:\src\llvm-project\build'227      - Kind:            LF_STRING_ID228        StringId:229          Id:              0230          String:          'C:\PROGRA~2\MICROS~1.0\VC\Bin\amd64\cl.exe'231      - Kind:            LF_STRING_ID232        StringId:233          Id:              0234          String:          '-c -Z7 -MT -IC:\PROGRA~2\MICROS~1.0\VC\include -IC:\PROGRA~2\MICROS~1.0\VC\atlmfc\include -IC:\PROGRA~2\WI3CF2~1\10\include\10.0.14393.0\ucrt -IC:\PROGRA~2\WI3CF2~1\10\include\10.0.14393.0\shared -IC:\PROGRA~2\WI3CF2~1\10\include\10.0.14393.0\um'235      - Kind:            LF_SUBSTR_LIST236        StringList:237          StringIndices:   [ 4106 ]238      - Kind:            LF_STRING_ID239        StringId:240          Id:              4107241          String:          ' -IC:\PROGRA~2\WI3CF2~1\10\include\10.0.14393.0\winrt -TC -X'242      - Kind:            LF_STRING_ID243        StringId:244          Id:              0245          String:          symbol-types.c246      - Kind:            LF_STRING_ID247        StringId:248          Id:              0249          String:          'C:\src\llvm-project\build\vc140.pdb'250      - Kind:            LF_BUILDINFO251        BuildInfo:252          ArgIndices:      [ 4104, 4105, 4109, 4110, 4108 ]253  - Name:            .data254    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]255    Alignment:       4256    SectionData:     2A000000257  - Name:            '.text$mn'258    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]259    Alignment:       16260    SectionData:     8B0500000000C3261    Relocations:262      - VirtualAddress:  2263        SymbolName:      global_foo264        Type:            IMAGE_REL_AMD64_REL32265symbols:266  - Name:            '@comp.id'267    Value:           17063575268    SectionNumber:   -1269    SimpleType:      IMAGE_SYM_TYPE_NULL270    ComplexType:     IMAGE_SYM_DTYPE_NULL271    StorageClass:    IMAGE_SYM_CLASS_STATIC272  - Name:            '@feat.00'273    Value:           2147484048274    SectionNumber:   -1275    SimpleType:      IMAGE_SYM_TYPE_NULL276    ComplexType:     IMAGE_SYM_DTYPE_NULL277    StorageClass:    IMAGE_SYM_CLASS_STATIC278  - Name:            .drectve279    Value:           0280    SectionNumber:   1281    SimpleType:      IMAGE_SYM_TYPE_NULL282    ComplexType:     IMAGE_SYM_DTYPE_NULL283    StorageClass:    IMAGE_SYM_CLASS_STATIC284    SectionDefinition:285      Length:          47286      NumberOfRelocations: 0287      NumberOfLinenumbers: 0288      CheckSum:        0289      Number:          0290  - Name:            '.debug$S'291    Value:           0292    SectionNumber:   2293    SimpleType:      IMAGE_SYM_TYPE_NULL294    ComplexType:     IMAGE_SYM_DTYPE_NULL295    StorageClass:    IMAGE_SYM_CLASS_STATIC296    SectionDefinition:297      Length:          432298      NumberOfRelocations: 6299      NumberOfLinenumbers: 0300      CheckSum:        0301      Number:          0302  - Name:            '.debug$T'303    Value:           0304    SectionNumber:   3305    SimpleType:      IMAGE_SYM_TYPE_NULL306    ComplexType:     IMAGE_SYM_DTYPE_NULL307    StorageClass:    IMAGE_SYM_CLASS_STATIC308    SectionDefinition:309      Length:          732310      NumberOfRelocations: 0311      NumberOfLinenumbers: 0312      CheckSum:        0313      Number:          0314  - Name:            .data315    Value:           0316    SectionNumber:   4317    SimpleType:      IMAGE_SYM_TYPE_NULL318    ComplexType:     IMAGE_SYM_DTYPE_NULL319    StorageClass:    IMAGE_SYM_CLASS_STATIC320    SectionDefinition:321      Length:          4322      NumberOfRelocations: 0323      NumberOfLinenumbers: 0324      CheckSum:        3482275674325      Number:          0326  - Name:            global_foo327    Value:           0328    SectionNumber:   4329    SimpleType:      IMAGE_SYM_TYPE_NULL330    ComplexType:     IMAGE_SYM_DTYPE_NULL331    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL332  - Name:            '.text$mn'333    Value:           0334    SectionNumber:   5335    SimpleType:      IMAGE_SYM_TYPE_NULL336    ComplexType:     IMAGE_SYM_DTYPE_NULL337    StorageClass:    IMAGE_SYM_CLASS_STATIC338    SectionDefinition:339      Length:          7340      NumberOfRelocations: 1341      NumberOfLinenumbers: 0342      CheckSum:        3635526833343      Number:          0344  - Name:            main345    Value:           0346    SectionNumber:   5347    SimpleType:      IMAGE_SYM_TYPE_NULL348    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION349    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL350...351