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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
| # Dump the complete .debug_line.dwo, then just one part.
#
# RUN: llvm-mc -triple x86_64-unknown-unknown -filetype=obj %s -o %t.o
# RUN: llvm-dwarfdump -debug-line %t.o | FileCheck %s --check-prefixes=PART1,PART2
# RUN: llvm-dwarfdump -debug-line=0x32 %t.o | FileCheck %s --check-prefix=PART2
.section .debug_line.dwo,"",@progbits
LH_1_start:
.long LH_1_end-LH_1_version # Length of Unit
LH_1_version:
.short 4 # DWARF version number
.long LH_1_header_end-LH_1_params # Length of Prologue
LH_1_params:
.byte 1 # Minimum Instruction Length
.byte 1 # Maximum Operations per Instruction
.byte 1 # Default is_stmt
.byte -5 # Line Base
.byte 14 # Line Range
.byte 13 # Opcode Base
.byte 0 # Standard Opcode Lengths
.byte 1
.byte 1
.byte 1
.byte 1
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 0
.byte 1
# Directory table
.asciz "Directory1"
.byte 0
# File table
.asciz "File1" # File name
.byte 1 # Directory index
.byte 0x41 # Timestamp
.byte 0x42 # File Size
.byte 0 # End of list
LH_1_header_end:
# Line number program, which is empty.
LH_1_end:
# PART1: Line table prologue:
# PART1-NEXT: total_length: 0x0000002e
# PART1-NEXT: version: 4
# PART1-NEXT: prologue_length: 0x00000028
# PART1: include_directories[ 1] = "Directory1"
# PART1: file_names[ 1]
# PART1: name: "File1"
# Second line table.
LH_2_start:
.long LH_2_end-LH_2_version # Length of Unit
LH_2_version:
.short 4 # DWARF version number
.long LH_2_header_end-LH_2_params # Length of Prologue
LH_2_params:
.byte 1 # Minimum Instruction Length
.byte 1 # Maximum Operations per Instruction
.byte 1 # Default is_stmt
.byte -5 # Line Base
.byte 14 # Line Range
.byte 13 # Opcode Base
.byte 0 # Standard Opcode Lengths
.byte 1
.byte 1
.byte 1
.byte 1
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 0
.byte 1
# Directory table
.asciz "Dir2"
.byte 0
# File table
.asciz "File2" # File name
.byte 1 # Directory index
.byte 0x14 # Timestamp
.byte 0x24 # File Size
.byte 0 # End of list
LH_2_header_end:
# Line number program, which is empty.
LH_2_end:
# PART2: Line table prologue:
# PART2-NEXT: total_length: 0x00000028
# PART2-NEXT: version: 4
# PART2-NEXT: prologue_length: 0x00000022
# PART2-NOT: prologue:
# PART2: include_directories[ 1] = "Dir2"
# PART2: file_names[ 1]
# PART2: name: "File2"
# PART2-NOT: prologue:
|