xref: /llvm-project/lldb/test/Shell/ObjectFile/PECOFF/symbols-export-table.yaml (revision 8a67a05e93349e341d1325f1a6428d1373f77177)
1# RUN: yaml2obj %s -o %t
2# RUN: lldb-test symbols %t | FileCheck %s
3
4# Checks that the symtab contains both symbols from the export table and the
5# COFF symbol table.
6
7# CHECK:          UserID DSX Type       File Address/Value {{.*}} Size            Flags           Name
8# CHECK-NEXT:     ------
9# CHECK-NEXT:          1   X Code       0x0000000180001020        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} exportFnAlias
10# CHECK-NEXT:          2   X Code       0x0000000180001010        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} exportFunc
11# CHECK-NEXT:          3   X Data       0x0000000180003000        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} exportInt
12# CHECK-NEXT:          4   X Data       0x0000000180003004        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} exportIntAlias
13# CHECK-NEXT: 4294967295     Code       0x0000000180001000        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} entry
14# CHECK-NEXT: 4294967295   X Additional 0x0000000180001010        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} exportFunc
15# CHECK-NEXT: 4294967295     Code       0x0000000180001020        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} aliasFunc
16# CHECK-NEXT: 4294967295   X Additional 0x0000000180003000        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} exportInt
17# CHECK-NEXT: 4294967295     Data       0x0000000180003004        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} aliasInt
18# CHECK-NEXT: 4294967295     Data       0x0000000180003008        0x{{[0-9a-f]+}} 0x{{[0-9a-f]+}} internalInt
19# CHECK-EMPTY:
20
21# Test file generated with:
22#   clang -O2 --target=x86_64-windows-msvc test.c -nostdlib -c -o test.obj
23#   lld-link -debug:symtab -dll -out:test.dll -entry:entry -export:exportFnAlias=aliasFunc -export:exportIntAlias=aliasInt test.obj
24# test.c:
25#   __declspec(dllexport) int exportInt;
26#   int aliasInt;
27#   int internalInt;
28#   void entry(void) {}
29#   __declspec(dllexport) void exportFunc(void) {}
30#   void aliasFunc(void) {}
31
32--- !COFF
33OptionalHeader:
34  AddressOfEntryPoint: 4096
35  ImageBase:       6442450944
36  SectionAlignment: 4096
37  FileAlignment:   512
38  MajorOperatingSystemVersion: 6
39  MinorOperatingSystemVersion: 0
40  MajorImageVersion: 0
41  MinorImageVersion: 0
42  MajorSubsystemVersion: 6
43  MinorSubsystemVersion: 0
44  Subsystem:       IMAGE_SUBSYSTEM_WINDOWS_GUI
45  DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT ]
46  SizeOfStackReserve: 1048576
47  SizeOfStackCommit: 4096
48  SizeOfHeapReserve: 1048576
49  SizeOfHeapCommit: 4096
50  ExportTable:
51    RelativeVirtualAddress: 8192
52    Size:            156
53header:
54  Machine:         IMAGE_FILE_MACHINE_AMD64
55  Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE, IMAGE_FILE_DLL ]
56sections:
57  - Name:            .text
58    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
59    VirtualAddress:  4096
60    VirtualSize:     33
61    SectionData:     C36666666666662E0F1F840000000000C36666666666662E0F1F840000000000C3
62  - Name:            .rdata
63    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
64    VirtualAddress:  8192
65    VirtualSize:     156
66    SectionData:     0000000000000000000000002820000001000000040000000400000042200000522000006220000073796D626F6C732D6578706F7274732E632E746D702E646C6C00201000001010000000300000043000006A20000078200000832000008D20000000000100020003006578706F7274466E416C696173006578706F727446756E63006578706F7274496E74006578706F7274496E74416C69617300
67  - Name:            .data
68    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
69    VirtualAddress:  12288
70    VirtualSize:     12
71    SectionData:     ''
72symbols:
73  - Name:            entry
74    Value:           0
75    SectionNumber:   1
76    SimpleType:      IMAGE_SYM_TYPE_NULL
77    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
78    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
79  - Name:            exportFunc
80    Value:           16
81    SectionNumber:   1
82    SimpleType:      IMAGE_SYM_TYPE_NULL
83    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
84    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
85  - Name:            aliasFunc
86    Value:           32
87    SectionNumber:   1
88    SimpleType:      IMAGE_SYM_TYPE_NULL
89    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
90    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
91  - Name:            exportInt
92    Value:           0
93    SectionNumber:   3
94    SimpleType:      IMAGE_SYM_TYPE_NULL
95    ComplexType:     IMAGE_SYM_DTYPE_NULL
96    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
97  - Name:            aliasInt
98    Value:           4
99    SectionNumber:   3
100    SimpleType:      IMAGE_SYM_TYPE_NULL
101    ComplexType:     IMAGE_SYM_DTYPE_NULL
102    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
103  - Name:            internalInt
104    Value:           8
105    SectionNumber:   3
106    SimpleType:      IMAGE_SYM_TYPE_NULL
107    ComplexType:     IMAGE_SYM_DTYPE_NULL
108    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
109...
110