xref: /llvm-project/llvm/test/DebugInfo/X86/dwarfdump-line-dwo.s (revision da913259c7ff03d07ba52c49859c6b6669a0b386)
1# Dump the complete .debug_line.dwo, then just one part.
2#
3# RUN: llvm-mc -triple x86_64-unknown-unknown -filetype=obj %s -o %t.o
4# RUN: llvm-dwarfdump -debug-line %t.o | FileCheck %s --check-prefixes=PART1,PART2
5# RUN: llvm-dwarfdump -debug-line=0x32 %t.o | FileCheck %s --check-prefix=PART2
6
7        .section .debug_line.dwo,"e",@progbits
8LH_1_start:
9        .long   LH_1_end-LH_1_version   # Length of Unit
10LH_1_version:
11        .short  4               # DWARF version number
12        .long   LH_1_header_end-LH_1_params     # Length of Prologue
13LH_1_params:
14        .byte   1               # Minimum Instruction Length
15        .byte   1               # Maximum Operations per Instruction
16        .byte   1               # Default is_stmt
17        .byte   -5              # Line Base
18        .byte   14              # Line Range
19        .byte   13              # Opcode Base
20        .byte   0               # Standard Opcode Lengths
21        .byte   1
22        .byte   1
23        .byte   1
24        .byte   1
25        .byte   0
26        .byte   0
27        .byte   0
28        .byte   1
29        .byte   0
30        .byte   0
31        .byte   1
32        # Directory table
33        .asciz  "Directory1"
34        .byte   0
35        # File table
36        .asciz  "File1"         # File name
37        .byte   1               # Directory index
38        .byte   0x41            # Timestamp
39        .byte   0x42            # File Size
40        .byte   0               # End of list
41LH_1_header_end:
42        # Line number program, which is empty.
43LH_1_end:
44
45# PART1:      Line table prologue:
46# PART1-NEXT: total_length: 0x0000002e
47# PART1-NEXT: format: DWARF32
48# PART1-NEXT: version: 4
49# PART1-NEXT: prologue_length: 0x00000028
50# PART1:      include_directories[  1] = "Directory1"
51# PART1:      file_names[  1]
52# PART1:      name: "File1"
53
54# Second line table.
55LH_2_start:
56        .long   LH_2_end-LH_2_version   # Length of Unit
57LH_2_version:
58        .short  4               # DWARF version number
59        .long   LH_2_header_end-LH_2_params     # Length of Prologue
60LH_2_params:
61        .byte   1               # Minimum Instruction Length
62        .byte   1               # Maximum Operations per Instruction
63        .byte   1               # Default is_stmt
64        .byte   -5              # Line Base
65        .byte   14              # Line Range
66        .byte   13              # Opcode Base
67        .byte   0               # Standard Opcode Lengths
68        .byte   1
69        .byte   1
70        .byte   1
71        .byte   1
72        .byte   0
73        .byte   0
74        .byte   0
75        .byte   1
76        .byte   0
77        .byte   0
78        .byte   1
79        # Directory table
80        .asciz  "Dir2"
81        .byte   0
82        # File table
83        .asciz  "File2"         # File name
84        .byte   1               # Directory index
85        .byte   0x14            # Timestamp
86        .byte   0x24            # File Size
87        .byte   0               # End of list
88LH_2_header_end:
89        # Line number program, which is empty.
90LH_2_end:
91
92# PART2:      Line table prologue:
93# PART2-NEXT: total_length: 0x00000028
94# PART2-NEXT: format: DWARF32
95# PART2-NEXT: version: 4
96# PART2-NEXT: prologue_length: 0x00000022
97# PART2-NOT:  prologue:
98# PART2:      include_directories[  1] = "Dir2"
99# PART2:      file_names[  1]
100# PART2:      name: "File2"
101# PART2-NOT:  prologue:
102