xref: /llvm-project/lld/test/COFF/sort-debug.test (revision e36535d4bebadfbcfea34aa369743aafc43dcf6c)
1# RUN: yaml2obj %s -o %t.obj
2# RUN: lld-link /debug /out:%t.exe /entry:main %t.obj
3# RUN: llvm-readobj --sections %t.exe | FileCheck %s
4# RUN: lld-link /debug:dwarf /out:%t.exe /entry:main %t.obj
5# RUN: llvm-readobj --sections %t.exe | FileCheck %s
6# RUN: lld-link /out:%t.exe /entry:main %t.obj
7# RUN: llvm-readobj --sections %t.exe | FileCheck -check-prefix=NODEBUG %s
8# RUN: lld-link /debug:symtab /out:%t.exe /entry:main %t.obj
9# RUN: llvm-readobj --sections %t.exe | FileCheck -check-prefix=NODEBUG %s
10# RUN: lld-link /debug:full,nodwarf /out:%t.exe /entry:main %t.obj
11# RUN: llvm-readobj --sections %t.exe | FileCheck -check-prefix=NODEBUG %s
12# RUN: lld-link /debug:full /debug:nodwarf /out:%t.exe /entry:main %t.obj
13# RUN: llvm-readobj --sections %t.exe | FileCheck -check-prefix=NODEBUG %s
14
15# CHECK: Name: .text
16# CHECK: Name: .reloc
17# CHECK: Name: .rmeta
18# CHECK: Name: .debug_abbrev
19# CHECK: Name: .debug_info
20# CHECK: Name: .debug_line
21# CHECK: Name: .debug_pubnames
22# CHECK: Name: .debug_pubtypes
23
24# NODEBUG: Name: .text
25# NODEBUG: Name: .reloc
26# NODEBUG: Name: .rmeta
27# NODEBUG-NOT: Name: .debug_abbrev
28# NODEBUG-NOT: Name: .debug_info
29# NODEBUG-NOT: Name: .debug_line
30# NODEBUG-NOT: Name: .debug_pubnames
31# NODEBUG-NOT: Name: .debug_pubtypes
32
33--- !COFF
34header:
35  Machine:         IMAGE_FILE_MACHINE_I386
36  Characteristics: [  ]
37sections:
38  - Name:            .text
39    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
40    Alignment:       16
41    SectionData:     508D0500000000C70424000000005AC3
42    Relocations:
43      - VirtualAddress:  3
44        SymbolName:      '?x@@3HA'
45        Type:            IMAGE_REL_I386_DIR32
46  - Name:            .data
47    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
48    Alignment:       4
49    SectionData:     ''
50  - Name:            .bss
51    Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
52    Alignment:       4
53    SectionData:     ''
54    SizeOfRawData:   4
55  - Name:            '.debug$S'
56    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
57    Alignment:       1
58    Subsections:
59      - !Symbols
60        Records:
61          - Kind:            S_GPROC32_ID
62            ProcSym:
63              PtrParent:       0
64              PtrEnd:          0
65              PtrNext:         0
66              CodeSize:        16
67              DbgStart:        0
68              DbgEnd:          0
69              FunctionType:    0
70              Segment:         0
71              Flags:           [  ]
72              DisplayName:     main
73          - Kind:            S_PROC_ID_END
74            ScopeEndSym:
75      - !Lines
76        CodeSize:        16
77        Flags:           [ HasColumnInfo ]
78        RelocOffset:     0
79        RelocSegment:    0
80        Blocks:
81          - FileName:        '\usr\local\google\home\majnemer\llvm\src\tools\lld\<stdin>'
82            Lines:
83              - Offset:          0
84                LineStart:       1
85                IsStatement:     false
86                EndDelta:        0
87            Columns:
88              - StartColumn:     0
89                EndColumn:       0
90      - !FileChecksums
91        Checksums:
92          - FileName:        '\usr\local\google\home\majnemer\llvm\src\tools\lld\<stdin>'
93            Kind:            None
94            Checksum:        ''
95      - !StringTable
96        Strings:
97          - '\usr\local\google\home\majnemer\llvm\src\tools\lld\<stdin>'
98    Relocations:
99      - VirtualAddress:  44
100        SymbolName:      _main
101        Type:            IMAGE_REL_I386_SECREL
102      - VirtualAddress:  48
103        SymbolName:      _main
104        Type:            IMAGE_REL_I386_SECTION
105      - VirtualAddress:  68
106        SymbolName:      _main
107        Type:            IMAGE_REL_I386_SECREL
108      - VirtualAddress:  72
109        SymbolName:      _main
110        Type:            IMAGE_REL_I386_SECTION
111  - Name:            .debug_str
112    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
113    Alignment:       1
114    SectionData:     ''
115  - Name:            .debug_loc
116    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
117    Alignment:       1
118    SectionData:     ''
119  - Name:            .debug_abbrev
120    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
121    Alignment:       1
122    SectionData:     011101250E1305030E10171B0E110112060000023400030E49133F193A0B3B0B02186E0E0000032400030E3E0B0B0B0000042E0011011206E77F194018030E3A0B3B0B49133F19000000
123  - Name:            .debug_info
124    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
125    Alignment:       1
126    SectionData:     54000000040000000000040100000000040037000000000000003F000000000000001000000002720000003B0000000101050300000000780000000374000000050404000000001000000001548000000001013B00000000
127    Relocations:
128      - VirtualAddress:  6
129        SymbolName:      .debug_abbrev
130        Type:            IMAGE_REL_I386_SECREL
131      - VirtualAddress:  12
132        SymbolName:      .debug_str
133        Type:            IMAGE_REL_I386_SECREL
134      - VirtualAddress:  18
135        SymbolName:      .debug_str
136        Type:            IMAGE_REL_I386_SECREL
137      - VirtualAddress:  22
138        SymbolName:      .debug_line
139        Type:            IMAGE_REL_I386_SECREL
140      - VirtualAddress:  26
141        SymbolName:      .debug_str
142        Type:            IMAGE_REL_I386_SECREL
143      - VirtualAddress:  30
144        SymbolName:      .text
145        Type:            IMAGE_REL_I386_DIR32
146      - VirtualAddress:  39
147        SymbolName:      .debug_str
148        Type:            IMAGE_REL_I386_SECREL
149      - VirtualAddress:  51
150        SymbolName:      '?x@@3HA'
151        Type:            IMAGE_REL_I386_DIR32
152      - VirtualAddress:  55
153        SymbolName:      .debug_str
154        Type:            IMAGE_REL_I386_SECREL
155      - VirtualAddress:  60
156        SymbolName:      .debug_str
157        Type:            IMAGE_REL_I386_SECREL
158      - VirtualAddress:  67
159        SymbolName:      .text
160        Type:            IMAGE_REL_I386_DIR32
161      - VirtualAddress:  77
162        SymbolName:      .debug_str
163        Type:            IMAGE_REL_I386_SECREL
164  - Name:            .debug_ranges
165    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
166    Alignment:       1
167    SectionData:     ''
168  - Name:            .debug_pubnames
169    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
170    Alignment:       1
171    SectionData:     1D00000002000000000058000000420000006D61696E0026000000780000000000
172    Relocations:
173      - VirtualAddress:  6
174        SymbolName:      .debug_info
175        Type:            IMAGE_REL_I386_SECREL
176  - Name:            .debug_pubtypes
177    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
178    Alignment:       1
179    SectionData:     16000000020000000000580000003B000000696E740000000000
180    Relocations:
181      - VirtualAddress:  6
182        SymbolName:      .debug_info
183        Type:            IMAGE_REL_I386_SECREL
184  - Name:            .debug_line
185    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
186    Alignment:       1
187    SectionData:     3300000002001E0000000101FB0E0D000101010100000001000001003C737464696E3E000000000000050200000000010AD60202000101
188    Relocations:
189      - VirtualAddress:  43
190        SymbolName:      .text
191        Type:            IMAGE_REL_I386_DIR32
192  - Name:            .rmeta
193    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
194    Alignment:       1
195    SectionData:     00112233
196symbols:
197  - Name:            .text
198    Value:           0
199    SectionNumber:   1
200    SimpleType:      IMAGE_SYM_TYPE_NULL
201    ComplexType:     IMAGE_SYM_DTYPE_NULL
202    StorageClass:    IMAGE_SYM_CLASS_STATIC
203    SectionDefinition:
204      Length:          16
205      NumberOfRelocations: 1
206      NumberOfLinenumbers: 0
207      CheckSum:        0
208      Number:          1
209  - Name:            .data
210    Value:           0
211    SectionNumber:   2
212    SimpleType:      IMAGE_SYM_TYPE_NULL
213    ComplexType:     IMAGE_SYM_DTYPE_NULL
214    StorageClass:    IMAGE_SYM_CLASS_STATIC
215    SectionDefinition:
216      Length:          0
217      NumberOfRelocations: 0
218      NumberOfLinenumbers: 0
219      CheckSum:        0
220      Number:          2
221  - Name:            .bss
222    Value:           0
223    SectionNumber:   3
224    SimpleType:      IMAGE_SYM_TYPE_NULL
225    ComplexType:     IMAGE_SYM_DTYPE_NULL
226    StorageClass:    IMAGE_SYM_CLASS_STATIC
227    SectionDefinition:
228      Length:          4
229      NumberOfRelocations: 0
230      NumberOfLinenumbers: 0
231      CheckSum:        0
232      Number:          3
233  - Name:            '.debug$S'
234    Value:           0
235    SectionNumber:   4
236    SimpleType:      IMAGE_SYM_TYPE_NULL
237    ComplexType:     IMAGE_SYM_DTYPE_NULL
238    StorageClass:    IMAGE_SYM_CLASS_STATIC
239    SectionDefinition:
240      Length:          188
241      NumberOfRelocations: 4
242      NumberOfLinenumbers: 0
243      CheckSum:        0
244      Number:          4
245  - Name:            .debug_str
246    Value:           0
247    SectionNumber:   5
248    SimpleType:      IMAGE_SYM_TYPE_NULL
249    ComplexType:     IMAGE_SYM_DTYPE_NULL
250    StorageClass:    IMAGE_SYM_CLASS_STATIC
251    SectionDefinition:
252      Length:          133
253      NumberOfRelocations: 0
254      NumberOfLinenumbers: 0
255      CheckSum:        0
256      Number:          5
257  - Name:            .debug_loc
258    Value:           0
259    SectionNumber:   6
260    SimpleType:      IMAGE_SYM_TYPE_NULL
261    ComplexType:     IMAGE_SYM_DTYPE_NULL
262    StorageClass:    IMAGE_SYM_CLASS_STATIC
263    SectionDefinition:
264      Length:          0
265      NumberOfRelocations: 0
266      NumberOfLinenumbers: 0
267      CheckSum:        0
268      Number:          6
269  - Name:            .debug_abbrev
270    Value:           0
271    SectionNumber:   7
272    SimpleType:      IMAGE_SYM_TYPE_NULL
273    ComplexType:     IMAGE_SYM_DTYPE_NULL
274    StorageClass:    IMAGE_SYM_CLASS_STATIC
275    SectionDefinition:
276      Length:          74
277      NumberOfRelocations: 0
278      NumberOfLinenumbers: 0
279      CheckSum:        0
280      Number:          7
281  - Name:            .debug_info
282    Value:           0
283    SectionNumber:   8
284    SimpleType:      IMAGE_SYM_TYPE_NULL
285    ComplexType:     IMAGE_SYM_DTYPE_NULL
286    StorageClass:    IMAGE_SYM_CLASS_STATIC
287    SectionDefinition:
288      Length:          88
289      NumberOfRelocations: 12
290      NumberOfLinenumbers: 0
291      CheckSum:        0
292      Number:          8
293  - Name:            .debug_ranges
294    Value:           0
295    SectionNumber:   9
296    SimpleType:      IMAGE_SYM_TYPE_NULL
297    ComplexType:     IMAGE_SYM_DTYPE_NULL
298    StorageClass:    IMAGE_SYM_CLASS_STATIC
299    SectionDefinition:
300      Length:          0
301      NumberOfRelocations: 0
302      NumberOfLinenumbers: 0
303      CheckSum:        0
304      Number:          9
305  - Name:            .debug_pubnames
306    Value:           0
307    SectionNumber:   10
308    SimpleType:      IMAGE_SYM_TYPE_NULL
309    ComplexType:     IMAGE_SYM_DTYPE_NULL
310    StorageClass:    IMAGE_SYM_CLASS_STATIC
311    SectionDefinition:
312      Length:          33
313      NumberOfRelocations: 1
314      NumberOfLinenumbers: 0
315      CheckSum:        0
316      Number:          10
317  - Name:            .debug_pubtypes
318    Value:           0
319    SectionNumber:   11
320    SimpleType:      IMAGE_SYM_TYPE_NULL
321    ComplexType:     IMAGE_SYM_DTYPE_NULL
322    StorageClass:    IMAGE_SYM_CLASS_STATIC
323    SectionDefinition:
324      Length:          26
325      NumberOfRelocations: 1
326      NumberOfLinenumbers: 0
327      CheckSum:        0
328      Number:          11
329  - Name:            .debug_line
330    Value:           0
331    SectionNumber:   12
332    SimpleType:      IMAGE_SYM_TYPE_NULL
333    ComplexType:     IMAGE_SYM_DTYPE_NULL
334    StorageClass:    IMAGE_SYM_CLASS_STATIC
335    SectionDefinition:
336      Length:          55
337      NumberOfRelocations: 1
338      NumberOfLinenumbers: 0
339      CheckSum:        0
340      Number:          12
341  - Name:            '@feat.00'
342    Value:           1
343    SectionNumber:   -1
344    SimpleType:      IMAGE_SYM_TYPE_NULL
345    ComplexType:     IMAGE_SYM_DTYPE_NULL
346    StorageClass:    IMAGE_SYM_CLASS_STATIC
347  - Name:            _main
348    Value:           0
349    SectionNumber:   1
350    SimpleType:      IMAGE_SYM_TYPE_NULL
351    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
352    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
353  - Name:            '?x@@3HA'
354    Value:           0
355    SectionNumber:   3
356    SimpleType:      IMAGE_SYM_TYPE_NULL
357    ComplexType:     IMAGE_SYM_DTYPE_NULL
358    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
359...
360