dwarfdump-debug-loclists-dwarf64.s
2.08 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
# RUN: llvm-mc %s -filetype obj -triple x86_64 -o - | \
# RUN: llvm-dwarfdump -v -debug-loclists - | \
# RUN: FileCheck %s
# CHECK: .debug_loclists contents:
# CHECK-NEXT: locations list header:
# CHECK-SAME: length = 0x0000000000000028,
# CHECK-SAME: format = DWARF64,
# CHECK-SAME: version = 0x0005,
# CHECK-SAME: addr_size = 0x08,
# CHECK-SAME: seg_size = 0x00,
# CHECK-SAME: offset_entry_count = 0x00000002
# CHECK-NEXT: offsets: [
# CHECK-NEXT: 0x0000000000000010 => 0x00000024
# CHECK-NEXT: 0x0000000000000018 => 0x0000002c
# CHECK-NEXT: ]
# CHECK-NEXT: 0x00000024:
# CHECK-NEXT: DW_LLE_offset_pair (0x0000000000000001, 0x0000000000000002): DW_OP_consts +7, DW_OP_stack_value
# CHECK-NEXT: DW_LLE_end_of_list ()
# CHECK-EMPTY:
# CHECK-NEXT: 0x0000002c:
# CHECK-NEXT: DW_LLE_offset_pair (0x0000000000000005, 0x0000000000000007): DW_OP_consts +12, DW_OP_stack_value
# CHECK-NEXT: DW_LLE_end_of_list ()
.section .debug_loclists, "", @progbits
.long 0xffffffff # DWARF64 mark
.quad .LLLEnd-.LLLBegin # Length
.LLLBegin:
.short 5 # Version
.byte 8 # Address size
.byte 0 # Segment selector size
.long 2 # Offset entry count
.LLLBase:
.quad .LLL0-.LLLBase
.quad .LLL1-.LLLBase
.LLL0:
.byte 4 # DW_LLE_offset_pair
.uleb128 1 # starting offset
.uleb128 2 # ending offset
.byte 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 7 # 7
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.LLL1:
.byte 4 # DW_LLE_offset_pair
.uleb128 5 # starting offset
.uleb128 7 # ending offset
.byte 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 12 # 12
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.LLLEnd: