• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1RUN: yaml2obj %p/Inputs/dwarf-exprs.exe-x86-64.yaml > %t.exe
2RUN: llvm-readobj -unwind %t.exe | FileCheck %s
3
4CHECK:      EH_FRAME Header [
5CHECK-NEXT:  Address: 0x4013c0
6CHECK-NEXT:  Offset: 0x27c
7CHECK-NEXT:  Size: 0x3c
8CHECK-NEXT:  Corresponding Section: .eh_frame_hdr
9CHECK-NEXT:  Header {
10CHECK-NEXT:    version: 1
11CHECK-NEXT:    eh_frame_ptr_enc: 0x1b
12CHECK-NEXT:    fde_count_enc: 0x3
13CHECK-NEXT:    table_enc: 0x3b
14CHECK-NEXT:    eh_frame_ptr: 0x401400
15CHECK-NEXT:    fde_count: 6
16CHECK-NEXT:    entry 0 {
17CHECK-NEXT:      initial_location: 0x4004a0
18CHECK-NEXT:      address: 0x401448
19CHECK-NEXT:    }
20CHECK-NEXT:    entry 1 {
21CHECK-NEXT:      initial_location: 0x4004d0
22CHECK-NEXT:      address: 0x401418
23CHECK-NEXT:    }
24CHECK-NEXT:    entry 2 {
25CHECK-NEXT:      initial_location: 0x4005b6
26CHECK-NEXT:      address: 0x401470
27CHECK-NEXT:    }
28CHECK-NEXT:    entry 3 {
29CHECK-NEXT:      initial_location: 0x4005d0
30CHECK-NEXT:      address: 0x401490
31CHECK-NEXT:    }
32CHECK-NEXT:    entry 4 {
33CHECK-NEXT:      initial_location: 0x401250
34CHECK-NEXT:      address: 0x4014c0
35CHECK-NEXT:    }
36CHECK-NEXT:    entry 5 {
37CHECK-NEXT:      initial_location: 0x4012c0
38CHECK-NEXT:      address: 0x4014f0
39CHECK-NEXT:    }
40CHECK-NEXT:  }
41CHECK-NEXT:]
42
43CHECK:      .eh_frame section at offset 0x2b8 address 0x401400:
44CHECK-NEXT:  [0x401400] CIE length=20
45CHECK-NEXT:    version: 1
46CHECK-NEXT:    augmentation: zR
47CHECK-NEXT:    code_alignment_factor: 1
48CHECK-NEXT:    data_alignment_factor: -8
49CHECK-NEXT:    return_address_register: 16
50
51CHECK:         Program:
52CHECK-NEXT:      DW_CFA_def_cfa: reg7 +8
53CHECK-NEXT:      DW_CFA_offset: reg16 -8
54CHECK-NEXT:      DW_CFA_undefined: reg16
55
56CHECK:       [0x401418] FDE length=20 cie=[0x401400]
57CHECK-NEXT:    initial_location: 0x4004d0
58CHECK-NEXT:    address_range: 0x2a (end : 0x4004fa)
59
60CHECK:         Program:
61CHECK-NEXT:      DW_CFA_nop:
62CHECK-NEXT:      DW_CFA_nop:
63CHECK-NEXT:      DW_CFA_nop:
64CHECK-NEXT:      DW_CFA_nop:
65CHECK-NEXT:      DW_CFA_nop:
66CHECK-NEXT:      DW_CFA_nop:
67CHECK-NEXT:      DW_CFA_nop:
68
69CHECK:       [0x401430] CIE length=20
70CHECK-NEXT:    version: 1
71CHECK-NEXT:    augmentation: zR
72CHECK-NEXT:    code_alignment_factor: 1
73CHECK-NEXT:    data_alignment_factor: -8
74CHECK-NEXT:    return_address_register: 16
75
76CHECK:         Program:
77CHECK-NEXT:      DW_CFA_def_cfa: reg7 +8
78CHECK-NEXT:      DW_CFA_offset: reg16 -8
79CHECK-NEXT:      DW_CFA_nop:
80CHECK-NEXT:      DW_CFA_nop:
81
82CHECK:       [0x401448] FDE length=36 cie=[0x401430]
83CHECK-NEXT:    initial_location: 0x4004a0
84CHECK-NEXT:    address_range: 0x20 (end : 0x4004c0)
85
86CHECK:         Program:
87CHECK-NEXT:      DW_CFA_def_cfa_offset: +16
88CHECK-NEXT:      DW_CFA_advance_loc: 6
89CHECK-NEXT:      DW_CFA_def_cfa_offset: +24
90CHECK-NEXT:      DW_CFA_advance_loc: 10
91CHECK-NEXT:      DW_CFA_def_cfa_expression: DW_OP_breg7 +8, DW_OP_breg16 +0, DW_OP_lit15, DW_OP_and, DW_OP_lit11, DW_OP_ge, DW_OP_lit3, DW_OP_shl, DW_OP_plus
92CHECK-NEXT:      DW_CFA_nop:
93CHECK-NEXT:      DW_CFA_nop:
94CHECK-NEXT:      DW_CFA_nop:
95CHECK-NEXT:      DW_CFA_nop:
96
97CHECK:       [0x401470] FDE length=28 cie=[0x401430]
98CHECK-NEXT:    initial_location: 0x4005b6
99CHECK-NEXT:    address_range: 0x10 (end : 0x4005c6)
100
101CHECK:         Program:
102CHECK-NEXT:      DW_CFA_advance_loc: 1
103CHECK-NEXT:      DW_CFA_def_cfa_offset: +16
104CHECK-NEXT:      DW_CFA_offset: reg6 -16
105CHECK-NEXT:      DW_CFA_advance_loc: 3
106CHECK-NEXT:      DW_CFA_def_cfa_register: reg6
107CHECK-NEXT:      DW_CFA_advance_loc: 11
108CHECK-NEXT:      DW_CFA_def_cfa: reg7 +8
109CHECK-NEXT:      DW_CFA_nop:
110CHECK-NEXT:      DW_CFA_nop:
111CHECK-NEXT:      DW_CFA_nop:
112
113CHECK:       [0x401490] FDE length=44 cie=[0x401430]
114CHECK-NEXT:    initial_location: 0x4005d0
115CHECK-NEXT:    address_range: 0xc7f (end : 0x40124f)
116
117CHECK:         Program:
118CHECK-NEXT:      DW_CFA_advance_loc: 5
119CHECK-NEXT:      DW_CFA_def_cfa: reg10 +0
120CHECK-NEXT:      DW_CFA_advance_loc: 9
121CHECK-NEXT:      DW_CFA_expression: reg6 DW_OP_breg6 +0
122CHECK-NEXT:      DW_CFA_advance_loc: 5
123CHECK-NEXT:      DW_CFA_def_cfa_expression: DW_OP_breg6 -8, DW_OP_deref
124CHECK-NEXT:      DW_CFA_advance_loc2: 3174
125CHECK-NEXT:      DW_CFA_def_cfa: reg10 +0
126CHECK-NEXT:      DW_CFA_advance_loc: 5
127CHECK-NEXT:      DW_CFA_def_cfa: reg7 +8
128CHECK-NEXT:      DW_CFA_nop:
129CHECK-NEXT:      DW_CFA_nop:
130CHECK-NEXT:      DW_CFA_nop:
131CHECK-NEXT:      DW_CFA_nop:
132
133CHECK:       [0x4014c0] FDE length=44 cie=[0x401430]
134CHECK-NEXT:    initial_location: 0x401250
135CHECK-NEXT:    address_range: 0x66 (end : 0x4012b6)
136
137CHECK:         Program:
138CHECK-NEXT:      DW_CFA_advance_loc: 1
139CHECK-NEXT:      DW_CFA_def_cfa_offset: +16
140CHECK-NEXT:      DW_CFA_offset: reg6 -16
141CHECK-NEXT:      DW_CFA_advance_loc: 3
142CHECK-NEXT:      DW_CFA_def_cfa_register: reg6
143CHECK-NEXT:      DW_CFA_advance_loc: 2
144CHECK-NEXT:      DW_CFA_offset: reg15 -24
145CHECK-NEXT:      DW_CFA_advance_loc: 5
146CHECK-NEXT:      DW_CFA_offset: reg14 -32
147CHECK-NEXT:      DW_CFA_advance_loc: 7
148CHECK-NEXT:      DW_CFA_offset: reg13 -40
149CHECK-NEXT:      DW_CFA_offset: reg12 -48
150CHECK-NEXT:      DW_CFA_advance_loc: 8
151CHECK-NEXT:      DW_CFA_offset: reg3 -56
152CHECK-NEXT:      DW_CFA_advance_loc1: 75
153CHECK-NEXT:      DW_CFA_def_cfa: reg7 +8
154CHECK-NEXT:      DW_CFA_nop:
155CHECK-NEXT:      DW_CFA_nop:
156CHECK-NEXT:      DW_CFA_nop:
157CHECK-NEXT:      DW_CFA_nop:
158
159CHECK:       [0x4014f0] FDE length=20 cie=[0x401430]
160CHECK-NEXT:    initial_location: 0x4012c0
161CHECK-NEXT:    address_range: 0x1 (end : 0x4012c1)
162
163CHECK:         Program:
164CHECK-NEXT:      DW_CFA_nop:
165CHECK-NEXT:      DW_CFA_nop:
166CHECK-NEXT:      DW_CFA_nop:
167CHECK-NEXT:      DW_CFA_nop:
168CHECK-NEXT:      DW_CFA_nop:
169CHECK-NEXT:      DW_CFA_nop:
170CHECK-NEXT:      DW_CFA_nop:
171