debug-reloc.s
1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# REQUIRES: x86
# RUN: llvm-mc -triple=x86_64-windows-gnu %s -filetype=obj -o %t.obj
# RUN: lld-link -lldmingw -debug:dwarf -out:%t.exe -entry:mainfunc -subsystem:console %t.obj
# RUN: llvm-readobj --sections %t.exe | FileCheck %s -check-prefix SECTIONS
# RUN: llvm-readobj --coff-basereloc %t.exe | FileCheck %s -check-prefix RELOCS
# RUN: llvm-readobj --file-headers %t.exe | FileCheck %s -check-prefix HEADERS
# RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck %s -check-prefix DEBUG
# SECTIONS: Number: 3
# SECTIONS-NEXT: Name: .buildid (2E 62 75 69 6C 64 69 64)
# SECTIONS-NEXT: VirtualSize: 0x35
# SECTIONS-NEXT: VirtualAddress: 0x3000
# SECTIONS: Number: 4
# SECTIONS-NEXT: Name: .data (2E 64 61 74 61 00 00 00)
# SECTIONS-NEXT: VirtualSize: 0x8
# SECTIONS-NEXT: VirtualAddress: 0x4000
# RELOCS: BaseReloc [
# RELOCS-NEXT: Entry {
# RELOCS-NEXT: Type: DIR64
# RELOCS-NEXT: Address: 0x4000
# RELOCS-NEXT: }
# RELOCS-NEXT: Entry {
# RELOCS-NEXT: Type: ABSOLUTE
# RELOCS-NEXT: Address: 0x4000
# RELOCS-NEXT: }
# RELOCS-NEXT: ]
# HEADERS: DebugRVA: 0x3000
# HEADERS: DebugSize: 0x1C
# DEBUG: DebugDirectory [
# DEBUG: DebugEntry {
# DEBUG: Type: CodeView (0x2)
# DEBUG: SizeOfData: 0x19
# DEBUG: AddressOfRawData: 0x301C
# DEBUG: PointerToRawData: 0x81C
.text
.def mainfunc;
.scl 2;
.type 32;
.endef
.globl mainfunc
mainfunc:
.Lfunc_begin0:
xorl %eax, %eax
retq
.data
.globl ptr
ptr:
.quad mainfunc
.section .debug_info,"dr"
.quad .Lfunc_begin0