worf 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +3 -0
- data/LICENSE +201 -0
- data/README.md +73 -0
- data/Rakefile +18 -0
- data/lib/worf.rb +563 -0
- data/lib/worf/constants.erb +17 -0
- data/lib/worf/constants.rb +693 -0
- data/lib/worf/constants.yml +799 -0
- data/test/dwarf_test.rb +128 -0
- data/test/fixtures/a.out +0 -0
- data/test/fixtures/a.out.dSYM/Contents/Info.plist +20 -0
- data/test/fixtures/a.out.dSYM/Contents/Resources/DWARF/a.out +0 -0
- data/test/fixtures/out.dSYM/Contents/Info.plist +20 -0
- data/test/fixtures/out.dSYM/Contents/Resources/DWARF/out +0 -0
- data/test/fixtures/slop.c +17 -0
- data/test/fixtures/thing.c +6 -0
- data/test/helper.rb +59 -0
- data/test/mach_o_dwarf_integration_test.rb +52 -0
- data/test/ruby_test.rb +238 -0
- data/worf.gemspec +15 -0
- metadata +116 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
module WORF
|
2
|
+
module Constants
|
3
|
+
<%- for table in constants -%>
|
4
|
+
# <%= table["name"] %>
|
5
|
+
# <%= table["header"].join(' | ') %>
|
6
|
+
<%- maxwidth = table["body"].map(&:first).sort_by(&:length).last.length -%>
|
7
|
+
<%- for row in table["body"] -%>
|
8
|
+
<%- comment = row.compact.length > 2 ? " # #{row.drop(2).join(' | ')}" : '' -%>
|
9
|
+
<%- if row.first == "Reserved" -%>
|
10
|
+
# <%= row.first.ljust(maxwidth - 2) %> = <%= sprintf("0x%02x", row[1]) %><%= comment %>
|
11
|
+
<%- else -%>
|
12
|
+
<%= row.first.ljust(maxwidth) %> = <%= sprintf("0x%02x", row[1]) %><%= comment %>
|
13
|
+
<%- end -%>
|
14
|
+
<%- end -%>
|
15
|
+
<%- end -%>
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,693 @@
|
|
1
|
+
module WORF
|
2
|
+
module Constants
|
3
|
+
# Table 7.2 Unit Header Types
|
4
|
+
# Unit header unit type encodings | Value
|
5
|
+
DW_UT_compile = 0x01
|
6
|
+
DW_UT_type = 0x02
|
7
|
+
DW_UT_partial = 0x03
|
8
|
+
DW_UT_skeleton = 0x04
|
9
|
+
DW_UT_split_compile = 0x05
|
10
|
+
DW_UT_split_type = 0x06
|
11
|
+
DW_UT_lo_user = 0x80
|
12
|
+
DW_UT_hi_user = 0xff
|
13
|
+
# Table 7.3: Tag encodings
|
14
|
+
# Tag name | Value
|
15
|
+
DW_TAG_array_type = 0x01
|
16
|
+
DW_TAG_class_type = 0x02
|
17
|
+
DW_TAG_entry_point = 0x03
|
18
|
+
DW_TAG_enumeration_type = 0x04
|
19
|
+
DW_TAG_formal_parameter = 0x05
|
20
|
+
# Reserved = 0x06
|
21
|
+
# Reserved = 0x07
|
22
|
+
DW_TAG_imported_declaration = 0x08
|
23
|
+
# Reserved = 0x09
|
24
|
+
DW_TAG_label = 0x0a
|
25
|
+
DW_TAG_lexical_block = 0x0b
|
26
|
+
# Reserved = 0x0c
|
27
|
+
DW_TAG_member = 0x0d
|
28
|
+
# Reserved = 0x0e
|
29
|
+
DW_TAG_pointer_type = 0x0f
|
30
|
+
DW_TAG_reference_type = 0x10
|
31
|
+
DW_TAG_compile_unit = 0x11
|
32
|
+
DW_TAG_string_type = 0x12
|
33
|
+
DW_TAG_structure_type = 0x13
|
34
|
+
# Reserved = 0x14
|
35
|
+
DW_TAG_subroutine_type = 0x15
|
36
|
+
DW_TAG_typedef = 0x16
|
37
|
+
DW_TAG_union_type = 0x17
|
38
|
+
DW_TAG_unspecified_parameters = 0x18
|
39
|
+
DW_TAG_variant = 0x19
|
40
|
+
DW_TAG_common_block = 0x1a
|
41
|
+
DW_TAG_common_inclusion = 0x1b
|
42
|
+
DW_TAG_inheritance = 0x1c
|
43
|
+
DW_TAG_inlined_subroutine = 0x1d
|
44
|
+
DW_TAG_module = 0x1e
|
45
|
+
DW_TAG_ptr_to_member_type = 0x1f
|
46
|
+
DW_TAG_set_type = 0x20
|
47
|
+
DW_TAG_subrange_type = 0x21
|
48
|
+
DW_TAG_with_stmt = 0x22
|
49
|
+
DW_TAG_access_declaration = 0x23
|
50
|
+
DW_TAG_base_type = 0x24
|
51
|
+
DW_TAG_catch_block = 0x25
|
52
|
+
DW_TAG_const_type = 0x26
|
53
|
+
DW_TAG_constant = 0x27
|
54
|
+
DW_TAG_enumerator = 0x28
|
55
|
+
DW_TAG_file_type = 0x29
|
56
|
+
DW_TAG_friend = 0x2a
|
57
|
+
DW_TAG_namelist = 0x2b
|
58
|
+
DW_TAG_namelist_item = 0x2c
|
59
|
+
DW_TAG_packed_type = 0x2d
|
60
|
+
DW_TAG_subprogram = 0x2e
|
61
|
+
DW_TAG_template_type_parameter = 0x2f
|
62
|
+
DW_TAG_template_value_parameter = 0x30
|
63
|
+
DW_TAG_thrown_type = 0x31
|
64
|
+
DW_TAG_try_block = 0x32
|
65
|
+
DW_TAG_variant_part = 0x33
|
66
|
+
DW_TAG_variable = 0x34
|
67
|
+
DW_TAG_volatile_type = 0x35
|
68
|
+
DW_TAG_dwarf_procedure = 0x36
|
69
|
+
DW_TAG_restrict_type = 0x37
|
70
|
+
DW_TAG_interface_type = 0x38
|
71
|
+
DW_TAG_namespace = 0x39
|
72
|
+
DW_TAG_imported_module = 0x3a
|
73
|
+
DW_TAG_unspecified_type = 0x3b
|
74
|
+
DW_TAG_partial_unit = 0x3c
|
75
|
+
DW_TAG_imported_unit = 0x3d
|
76
|
+
# Reserved = 0x3e1
|
77
|
+
DW_TAG_condition = 0x3f
|
78
|
+
DW_TAG_shared_type = 0x40
|
79
|
+
DW_TAG_type_unit = 0x41
|
80
|
+
DW_TAG_rvalue_reference_type = 0x42
|
81
|
+
DW_TAG_template_alias = 0x43
|
82
|
+
DW_TAG_coarray_type = 0x44
|
83
|
+
DW_TAG_generic_subrange = 0x45
|
84
|
+
DW_TAG_dynamic_type = 0x46
|
85
|
+
DW_TAG_atomic_type = 0x47
|
86
|
+
DW_TAG_call_site = 0x48
|
87
|
+
DW_TAG_call_site_parameter = 0x49
|
88
|
+
DW_TAG_skeleton_unit = 0x4a
|
89
|
+
DW_TAG_immutable_type = 0x4b
|
90
|
+
DW_TAG_low_user = 0x4080
|
91
|
+
DW_TAG_hi_user = 0xffff
|
92
|
+
# Table 7.4: Child determination encodings
|
93
|
+
# Children determination name | Value
|
94
|
+
DW_CHILDREN_no = 0x00
|
95
|
+
DW_CHILDREN_yes = 0x01
|
96
|
+
# Table 7.5: Attribute encodings
|
97
|
+
# Attribute name | Value | Classes
|
98
|
+
DW_AT_sibling = 0x01 # reference
|
99
|
+
DW_AT_location = 0x02 # exprloc, loclist
|
100
|
+
DW_AT_name = 0x03 # string
|
101
|
+
# Reserved = 0x04 # not applicable
|
102
|
+
# Reserved = 0x05 # not applicable
|
103
|
+
# Reserved = 0x06 # not applicable
|
104
|
+
# Reserved = 0x07 # not applicable
|
105
|
+
# Reserved = 0x08 # not applicable
|
106
|
+
DW_AT_ordering = 0x09 # constant
|
107
|
+
# Reserved = 0x0a # not applicable
|
108
|
+
DW_AT_byte_size = 0x0b # constant, exprloc, reference
|
109
|
+
# Reserved = 0x0c # constant, exprloc, reference
|
110
|
+
DW_AT_bit_size = 0x0d # constant, exprloc, reference
|
111
|
+
# Reserved = 0x0e # not applicable
|
112
|
+
# Reserved = 0x0f # not applicable
|
113
|
+
DW_AT_stmt_list = 0x10 # lineptr
|
114
|
+
DW_AT_low_pc = 0x11 # address
|
115
|
+
DW_AT_high_pc = 0x12 # address, constant
|
116
|
+
DW_AT_language = 0x13 # constant
|
117
|
+
# Reserved = 0x14 # not applicable
|
118
|
+
DW_AT_discr = 0x15 # reference
|
119
|
+
DW_AT_discr_value = 0x16 # constant
|
120
|
+
DW_AT_visibility = 0x17 # constant
|
121
|
+
DW_AT_import = 0x18 # reference
|
122
|
+
DW_AT_string_length = 0x19 # exprloc, loclist, reference
|
123
|
+
DW_AT_common_reference = 0x1a # reference
|
124
|
+
DW_AT_comp_dir = 0x1b # string
|
125
|
+
DW_AT_const_value = 0x1c # block, constant, string
|
126
|
+
DW_AT_containing_type = 0x1d # reference
|
127
|
+
DW_AT_default_value = 0x1e # constant, reference, flag
|
128
|
+
# Reserved = 0x1f # not applicable
|
129
|
+
DW_AT_inline = 0x20 # constant
|
130
|
+
DW_AT_is_optional = 0x21 # flag
|
131
|
+
DW_AT_lower_bound = 0x22 # constant, exprloc, reference
|
132
|
+
# Reserved = 0x23 # not applicable
|
133
|
+
# Reserved = 0x24 # not applicable
|
134
|
+
DW_AT_producer = 0x25 # string
|
135
|
+
# Reserved = 0x26 # not applicable
|
136
|
+
DW_AT_prototyped = 0x27 # flag
|
137
|
+
# Reserved = 0x28 # not applicable
|
138
|
+
# Reserved = 0x29 # not applicable
|
139
|
+
DW_AT_return_addr = 0x2a # exprloc, loclist
|
140
|
+
# Reserved = 0x2b # not applicable
|
141
|
+
DW_AT_start_scope = 0x2c # constant, rnglist
|
142
|
+
# Reserved = 0x2d # not applicable
|
143
|
+
DW_AT_bit_stride = 0x2e # constant, exprloc, reference
|
144
|
+
DW_AT_upper_bound = 0x2f # constant, exprloc, reference
|
145
|
+
# Reserved = 0x30 # not applicable
|
146
|
+
DW_AT_abstract_origin = 0x31 # reference
|
147
|
+
DW_AT_accessibility = 0x32 # constant
|
148
|
+
DW_AT_address_class = 0x33 # constant
|
149
|
+
DW_AT_artificial = 0x34 # flag
|
150
|
+
DW_AT_base_types = 0x35 # reference
|
151
|
+
DW_AT_calling_convention = 0x36 # constant
|
152
|
+
DW_AT_count = 0x37 # constant, exprloc, reference
|
153
|
+
DW_AT_data_member_location = 0x38 # constant, exprloc, loclist
|
154
|
+
DW_AT_decl_column = 0x39 # constant
|
155
|
+
DW_AT_decl_file = 0x3a # constant
|
156
|
+
DW_AT_decl_line = 0x3b # constant
|
157
|
+
DW_AT_declaration = 0x3c # flag
|
158
|
+
DW_AT_discr_list = 0x3d # block
|
159
|
+
DW_AT_encoding = 0x3e # constant
|
160
|
+
DW_AT_external = 0x3f # flag
|
161
|
+
DW_AT_frame_base = 0x40 # exprloc, loclist
|
162
|
+
DW_AT_friend = 0x41 # reference
|
163
|
+
DW_AT_identifier_case = 0x42 # constant
|
164
|
+
# Reserved = 0x433 # macptr
|
165
|
+
DW_AT_namelist_item = 0x44 # reference
|
166
|
+
DW_AT_priority = 0x45 # reference
|
167
|
+
DW_AT_segment = 0x46 # exprloc, loclist
|
168
|
+
DW_AT_specification = 0x47 # reference
|
169
|
+
DW_AT_static_link = 0x48 # exprloc, loclist
|
170
|
+
DW_AT_type = 0x49 # reference
|
171
|
+
DW_AT_use_location = 0x4a # exprloc, loclist
|
172
|
+
DW_AT_variable_parameter = 0x4b # flag
|
173
|
+
DW_AT_virtuality = 0x4c # constant
|
174
|
+
DW_AT_vtable_elem_location = 0x4d # exprloc, loclist
|
175
|
+
DW_AT_allocated = 0x4e # constant, exprloc, reference
|
176
|
+
DW_AT_associated = 0x4f # constant, exprloc, reference
|
177
|
+
DW_AT_data_location = 0x50 # exprloc
|
178
|
+
DW_AT_byte_stride = 0x51 # constant, exprloc, reference
|
179
|
+
DW_AT_entry_pc = 0x52 # address, constant
|
180
|
+
DW_AT_use_UTF8 = 0x53 # flag
|
181
|
+
DW_AT_extension = 0x54 # reference
|
182
|
+
DW_AT_ranges = 0x55 # rnglist
|
183
|
+
DW_AT_trampoline = 0x56 # address, flag, reference, string
|
184
|
+
DW_AT_call_column = 0x57 # constant
|
185
|
+
DW_AT_call_file = 0x58 # constant
|
186
|
+
DW_AT_call_line = 0x59 # constant
|
187
|
+
DW_AT_description = 0x5a # string
|
188
|
+
DW_AT_binary_scale = 0x5b # constant
|
189
|
+
DW_AT_decimal_scale = 0x5c # constant
|
190
|
+
DW_AT_small = 0x5d # reference
|
191
|
+
DW_AT_decimal_sign = 0x5e # constant
|
192
|
+
DW_AT_digit_count = 0x5f # constant
|
193
|
+
DW_AT_picture_string = 0x60 # string
|
194
|
+
DW_AT_mutable = 0x61 # flag
|
195
|
+
DW_AT_threads_scaled = 0x62 # flag
|
196
|
+
DW_AT_explicit = 0x63 # flag
|
197
|
+
DW_AT_object_pointer = 0x64 # reference
|
198
|
+
DW_AT_endianity = 0x65 # constant
|
199
|
+
DW_AT_elemental = 0x66 # flag
|
200
|
+
DW_AT_pure = 0x67 # flag
|
201
|
+
DW_AT_recursive = 0x68 # flag
|
202
|
+
DW_AT_signature = 0x69 # reference
|
203
|
+
DW_AT_main_subprogram = 0x6a # flag
|
204
|
+
DW_AT_data_bit_offset = 0x6b # constant
|
205
|
+
DW_AT_const_expr = 0x6c # flag
|
206
|
+
DW_AT_enum_class = 0x6d # flag
|
207
|
+
DW_AT_linkage_name = 0x6e # string
|
208
|
+
DW_AT_string_length_bit_size = 0x6f # constant
|
209
|
+
DW_AT_string_length_byte_size = 0x70 # constant
|
210
|
+
DW_AT_rank = 0x71 # constant, exprloc
|
211
|
+
DW_AT_str_offsets_base = 0x72 # stroffsetsptr
|
212
|
+
DW_AT_addr_base = 0x73 # addrptr
|
213
|
+
DW_AT_rnglists_base = 0x74 # rnglistsptr
|
214
|
+
# Reserved = 0x75 # Unused
|
215
|
+
DW_AT_dwo_name = 0x76 # string
|
216
|
+
DW_AT_reference = 0x77 # flag
|
217
|
+
DW_AT_rvalue_reference = 0x78 # flag
|
218
|
+
DW_AT_macros = 0x79 # macptr
|
219
|
+
DW_AT_call_all_calls = 0x7a # flag
|
220
|
+
DW_AT_call_all_source_calls = 0x7b # flag
|
221
|
+
DW_AT_call_all_tail_calls = 0x7c # flag
|
222
|
+
DW_AT_call_return_pc = 0x7d # address
|
223
|
+
DW_AT_call_value = 0x7e # exprloc
|
224
|
+
DW_AT_call_origin = 0x7f # exprloc
|
225
|
+
DW_AT_call_parameter = 0x80 # reference
|
226
|
+
DW_AT_call_pc = 0x81 # address
|
227
|
+
DW_AT_call_tail_call = 0x82 # flag
|
228
|
+
DW_AT_call_target = 0x83 # exprloc
|
229
|
+
DW_AT_call_target_clobbered = 0x84 # exprloc
|
230
|
+
DW_AT_call_data_location = 0x85 # exprloc
|
231
|
+
DW_AT_call_data_value = 0x86 # exprloc
|
232
|
+
DW_AT_noreturn = 0x87 # flag
|
233
|
+
DW_AT_alignment = 0x88 # constant
|
234
|
+
DW_AT_export_symbols = 0x89 # flag
|
235
|
+
DW_AT_deleted = 0x8a # flag
|
236
|
+
DW_AT_defaulted = 0x8b # constant
|
237
|
+
DW_AT_loclists_base = 0x8c # loclistsptr
|
238
|
+
DW_AT_lo_user = 0x2000
|
239
|
+
DW_AT_hi_user = 0x3fff
|
240
|
+
# Table 7.6: Attribute form encodings
|
241
|
+
# Form name | Value | Classes
|
242
|
+
DW_FORM_addr = 0x01 # address
|
243
|
+
# Reserved = 0x02
|
244
|
+
DW_FORM_block2 = 0x03 # block
|
245
|
+
DW_FORM_block4 = 0x04 # block
|
246
|
+
DW_FORM_data2 = 0x05 # constant
|
247
|
+
DW_FORM_data4 = 0x06 # constant
|
248
|
+
DW_FORM_data8 = 0x07 # constant
|
249
|
+
DW_FORM_string = 0x08 # string
|
250
|
+
DW_FORM_block = 0x09 # block
|
251
|
+
DW_FORM_block1 = 0x0a # block
|
252
|
+
DW_FORM_data1 = 0x0b # constant
|
253
|
+
DW_FORM_flag = 0x0c # flag
|
254
|
+
DW_FORM_sdata = 0x0d # constant
|
255
|
+
DW_FORM_strp = 0x0e # string
|
256
|
+
DW_FORM_udata = 0x0f # constant
|
257
|
+
DW_FORM_ref_addr = 0x10 # reference
|
258
|
+
DW_FORM_ref1 = 0x11 # reference
|
259
|
+
DW_FORM_ref2 = 0x12 # reference
|
260
|
+
DW_FORM_ref4 = 0x13 # reference
|
261
|
+
DW_FORM_ref8 = 0x14 # reference
|
262
|
+
DW_FORM_ref_udata = 0x15 # reference
|
263
|
+
DW_FORM_indirect = 0x16 # (see Section 7.5.3 on page 203)
|
264
|
+
DW_FORM_sec_offset = 0x17 # addrptr, lineptr, loclist, loclistsptr, macptr, rnglist, rnglistsptr, stroffsetsptr
|
265
|
+
DW_FORM_exprloc = 0x18 # exprloc
|
266
|
+
DW_FORM_flag_present = 0x19 # flag
|
267
|
+
DW_FORM_strx = 0x1a # string
|
268
|
+
DW_FORM_addrx = 0x1b # address
|
269
|
+
DW_FORM_ref_sup4 = 0x1c # reference
|
270
|
+
DW_FORM_strp_sup = 0x1d # string
|
271
|
+
DW_FORM_data16 = 0x1e # constant
|
272
|
+
DW_FORM_line_strp = 0x1f # string
|
273
|
+
DW_FORM_ref_sig8 = 0x20 # reference
|
274
|
+
DW_FORM_implicit_const = 0x21 # constant
|
275
|
+
DW_FORM_loclistx = 0x22 # loclist
|
276
|
+
DW_FORM_rnglistx = 0x23 # rnglist
|
277
|
+
DW_FORM_ref_sup8 = 0x24 # reference
|
278
|
+
DW_FORM_strx1 = 0x25 # string
|
279
|
+
DW_FORM_strx2 = 0x26 # string
|
280
|
+
DW_FORM_strx3 = 0x27 # string
|
281
|
+
DW_FORM_strx4 = 0x28 # string
|
282
|
+
DW_FORM_addrx1 = 0x29 # address
|
283
|
+
DW_FORM_addrx2 = 0x2a # address
|
284
|
+
DW_FORM_addrx3 = 0x2b # address
|
285
|
+
DW_FORM_addrx4 = 0x2c # address
|
286
|
+
# Table 7.9: DWARF operation encodings
|
287
|
+
# Operation | Code | No. of Operands | Notes
|
288
|
+
# Reserved = 0x01
|
289
|
+
# Reserved = 0x02
|
290
|
+
DW_OP_addr = 0x03 # 1 | constant address (size is target specific)
|
291
|
+
# Reserved = 0x04
|
292
|
+
# Reserved = 0x05
|
293
|
+
DW_OP_deref = 0x06 # 0
|
294
|
+
# Reserved = 0x07
|
295
|
+
DW_OP_const1u = 0x08 # 1 | 1-byte constant
|
296
|
+
DW_OP_const1s = 0x09 # 1 | 1-byte constant
|
297
|
+
DW_OP_const2u = 0x0a # 1 | 2-byte constant
|
298
|
+
DW_OP_const2s = 0x0b # 1 | 2-byte constant
|
299
|
+
DW_OP_const4u = 0x0c # 1 | 4-byte constant
|
300
|
+
DW_OP_const4s = 0x0d # 1 | 4-byte constant
|
301
|
+
DW_OP_const8u = 0x0e # 1 | 8-byte constant
|
302
|
+
DW_OP_const8s = 0x0f # 1 | 8-byte constant
|
303
|
+
DW_OP_constu = 0x10 # 1 | ULEB128 constant
|
304
|
+
DW_OP_consts = 0x11 # 1 | SLEB128 constant
|
305
|
+
DW_OP_dup = 0x12 # 0
|
306
|
+
DW_OP_drop = 0x13 # 0
|
307
|
+
DW_OP_over = 0x14 # 0
|
308
|
+
DW_OP_pick = 0x15 # 1 | 1-byte stack index
|
309
|
+
DW_OP_swap = 0x16 # 0
|
310
|
+
DW_OP_rot = 0x17 # 0
|
311
|
+
DW_OP_xderef = 0x18 # 0
|
312
|
+
DW_OP_abs = 0x19 # 0
|
313
|
+
DW_OP_and = 0x1a # 0
|
314
|
+
DW_OP_div = 0x1b # 0
|
315
|
+
DW_OP_minus = 0x1c # 0
|
316
|
+
DW_OP_mod = 0x1d # 0
|
317
|
+
DW_OP_mul = 0x1e # 0
|
318
|
+
DW_OP_neg = 0x1f # 0
|
319
|
+
DW_OP_not = 0x20 # 0
|
320
|
+
DW_OP_or = 0x21 # 0
|
321
|
+
DW_OP_plus = 0x22 # 0
|
322
|
+
DW_OP_plus_uconst = 0x23 # 1 | ULEB128 addend
|
323
|
+
DW_OP_shl = 0x24 # 0
|
324
|
+
DW_OP_shr = 0x25 # 0
|
325
|
+
DW_OP_shra = 0x26 # 0
|
326
|
+
DW_OP_xor = 0x27 # 0
|
327
|
+
DW_OP_bra = 0x28 # 1 | signed 2-byte constant
|
328
|
+
DW_OP_eq = 0x29 # 0
|
329
|
+
DW_OP_ge = 0x2a # 0
|
330
|
+
DW_OP_gt = 0x2b # 0
|
331
|
+
DW_OP_le = 0x2c # 0
|
332
|
+
DW_OP_lt = 0x2d # 0
|
333
|
+
DW_OP_ne = 0x2e # 0
|
334
|
+
DW_OP_skip = 0x2f # 1 | signed 2-byte constant
|
335
|
+
DW_OP_lit0 = 0x30 # 0 | literal 0
|
336
|
+
DW_OP_lit1 = 0x31 # 0 | literal 1
|
337
|
+
DW_OP_lit2 = 0x32 # 0 | literal 2
|
338
|
+
DW_OP_lit3 = 0x33 # 0 | literal 3
|
339
|
+
DW_OP_lit4 = 0x34 # 0 | literal 4
|
340
|
+
DW_OP_lit5 = 0x35 # 0 | literal 5
|
341
|
+
DW_OP_lit6 = 0x36 # 0 | literal 6
|
342
|
+
DW_OP_lit7 = 0x37 # 0 | literal 7
|
343
|
+
DW_OP_lit8 = 0x38 # 0 | literal 8
|
344
|
+
DW_OP_lit9 = 0x39 # 0 | literal 9
|
345
|
+
DW_OP_lit10 = 0x3a # 0 | literal 10
|
346
|
+
DW_OP_lit11 = 0x3b # 0 | literal 11
|
347
|
+
DW_OP_lit12 = 0x3c # 0 | literal 12
|
348
|
+
DW_OP_lit13 = 0x3d # 0 | literal 13
|
349
|
+
DW_OP_lit14 = 0x3e # 0 | literal 14
|
350
|
+
DW_OP_lit15 = 0x3f # 0 | literal 15
|
351
|
+
DW_OP_lit16 = 0x40 # 0 | literal 16
|
352
|
+
DW_OP_lit17 = 0x41 # 0 | literal 17
|
353
|
+
DW_OP_lit18 = 0x42 # 0 | literal 18
|
354
|
+
DW_OP_lit19 = 0x43 # 0 | literal 19
|
355
|
+
DW_OP_lit20 = 0x44 # 0 | literal 20
|
356
|
+
DW_OP_lit21 = 0x45 # 0 | literal 21
|
357
|
+
DW_OP_lit22 = 0x46 # 0 | literal 22
|
358
|
+
DW_OP_lit23 = 0x47 # 0 | literal 23
|
359
|
+
DW_OP_lit24 = 0x48 # 0 | literal 24
|
360
|
+
DW_OP_lit25 = 0x49 # 0 | literal 25
|
361
|
+
DW_OP_lit26 = 0x4a # 0 | literal 26
|
362
|
+
DW_OP_lit27 = 0x4b # 0 | literal 27
|
363
|
+
DW_OP_lit28 = 0x4c # 0 | literal 28
|
364
|
+
DW_OP_lit29 = 0x4d # 0 | literal 29
|
365
|
+
DW_OP_lit30 = 0x4e # 0 | literal 30
|
366
|
+
DW_OP_lit31 = 0x4f # 0 | literal 31
|
367
|
+
DW_OP_reg0 = 0x50 # 0 | reg 0
|
368
|
+
DW_OP_reg1 = 0x51 # 0 | reg 1
|
369
|
+
DW_OP_reg2 = 0x52 # 0 | reg 2
|
370
|
+
DW_OP_reg3 = 0x53 # 0 | reg 3
|
371
|
+
DW_OP_reg4 = 0x54 # 0 | reg 4
|
372
|
+
DW_OP_reg5 = 0x55 # 0 | reg 5
|
373
|
+
DW_OP_reg6 = 0x56 # 0 | reg 6
|
374
|
+
DW_OP_reg7 = 0x57 # 0 | reg 7
|
375
|
+
DW_OP_reg8 = 0x58 # 0 | reg 8
|
376
|
+
DW_OP_reg9 = 0x59 # 0 | reg 9
|
377
|
+
DW_OP_reg10 = 0x5a # 0 | reg 10
|
378
|
+
DW_OP_reg11 = 0x5b # 0 | reg 11
|
379
|
+
DW_OP_reg12 = 0x5c # 0 | reg 12
|
380
|
+
DW_OP_reg13 = 0x5d # 0 | reg 13
|
381
|
+
DW_OP_reg14 = 0x5e # 0 | reg 14
|
382
|
+
DW_OP_reg15 = 0x5f # 0 | reg 15
|
383
|
+
DW_OP_reg16 = 0x60 # 0 | reg 16
|
384
|
+
DW_OP_reg17 = 0x61 # 0 | reg 17
|
385
|
+
DW_OP_reg18 = 0x62 # 0 | reg 18
|
386
|
+
DW_OP_reg19 = 0x63 # 0 | reg 19
|
387
|
+
DW_OP_reg20 = 0x64 # 0 | reg 20
|
388
|
+
DW_OP_reg21 = 0x65 # 0 | reg 21
|
389
|
+
DW_OP_reg22 = 0x66 # 0 | reg 22
|
390
|
+
DW_OP_reg23 = 0x67 # 0 | reg 23
|
391
|
+
DW_OP_reg24 = 0x68 # 0 | reg 24
|
392
|
+
DW_OP_reg25 = 0x69 # 0 | reg 25
|
393
|
+
DW_OP_reg26 = 0x6a # 0 | reg 26
|
394
|
+
DW_OP_reg27 = 0x6b # 0 | reg 27
|
395
|
+
DW_OP_reg28 = 0x6c # 0 | reg 28
|
396
|
+
DW_OP_reg29 = 0x6d # 0 | reg 29
|
397
|
+
DW_OP_reg30 = 0x6e # 0 | reg 30
|
398
|
+
DW_OP_reg31 = 0x6f # 0 | reg 31
|
399
|
+
DW_OP_breg0 = 0x70 # 1 | base register 0 SLEB128 offset
|
400
|
+
DW_OP_breg1 = 0x71 # 1 | base register 1 SLEB128 offset
|
401
|
+
DW_OP_breg2 = 0x72 # 1 | base register 2 SLEB128 offset
|
402
|
+
DW_OP_breg3 = 0x73 # 1 | base register 3 SLEB128 offset
|
403
|
+
DW_OP_breg4 = 0x74 # 1 | base register 4 SLEB128 offset
|
404
|
+
DW_OP_breg5 = 0x75 # 1 | base register 5 SLEB128 offset
|
405
|
+
DW_OP_breg6 = 0x76 # 1 | base register 6 SLEB128 offset
|
406
|
+
DW_OP_breg7 = 0x77 # 1 | base register 7 SLEB128 offset
|
407
|
+
DW_OP_breg8 = 0x78 # 1 | base register 8 SLEB128 offset
|
408
|
+
DW_OP_breg9 = 0x79 # 1 | base register 9 SLEB128 offset
|
409
|
+
DW_OP_breg10 = 0x7a # 1 | base register 10 SLEB128 offset
|
410
|
+
DW_OP_breg11 = 0x7b # 1 | base register 11 SLEB128 offset
|
411
|
+
DW_OP_breg12 = 0x7c # 1 | base register 12 SLEB128 offset
|
412
|
+
DW_OP_breg13 = 0x7d # 1 | base register 13 SLEB128 offset
|
413
|
+
DW_OP_breg14 = 0x7e # 1 | base register 14 SLEB128 offset
|
414
|
+
DW_OP_breg15 = 0x7f # 1 | base register 15 SLEB128 offset
|
415
|
+
DW_OP_breg16 = 0x80 # 1 | base register 16 SLEB128 offset
|
416
|
+
DW_OP_breg17 = 0x81 # 1 | base register 17 SLEB128 offset
|
417
|
+
DW_OP_breg18 = 0x82 # 1 | base register 18 SLEB128 offset
|
418
|
+
DW_OP_breg19 = 0x83 # 1 | base register 19 SLEB128 offset
|
419
|
+
DW_OP_breg20 = 0x84 # 1 | base register 20 SLEB128 offset
|
420
|
+
DW_OP_breg21 = 0x85 # 1 | base register 21 SLEB128 offset
|
421
|
+
DW_OP_breg22 = 0x86 # 1 | base register 22 SLEB128 offset
|
422
|
+
DW_OP_breg23 = 0x87 # 1 | base register 23 SLEB128 offset
|
423
|
+
DW_OP_breg24 = 0x88 # 1 | base register 24 SLEB128 offset
|
424
|
+
DW_OP_breg25 = 0x89 # 1 | base register 25 SLEB128 offset
|
425
|
+
DW_OP_breg26 = 0x8a # 1 | base register 26 SLEB128 offset
|
426
|
+
DW_OP_breg27 = 0x8b # 1 | base register 27 SLEB128 offset
|
427
|
+
DW_OP_breg28 = 0x8c # 1 | base register 28 SLEB128 offset
|
428
|
+
DW_OP_breg29 = 0x8d # 1 | base register 29 SLEB128 offset
|
429
|
+
DW_OP_breg30 = 0x8e # 1 | base register 30 SLEB128 offset
|
430
|
+
DW_OP_breg31 = 0x8f # 1 | base register 31 SLEB128 offset
|
431
|
+
DW_OP_regx = 0x90 # 1 | ULEB128 register
|
432
|
+
DW_OP_fbreg = 0x91 # 1 | SLEB128 offset
|
433
|
+
DW_OP_bregx = 0x92 # 2 | ULEB128 register, SLEB128 offset
|
434
|
+
DW_OP_piece = 0x93 # 1 | ULEB128 size of piece
|
435
|
+
DW_OP_deref_size = 0x94 # 1 | 1-byte size of data retrieved
|
436
|
+
DW_OP_xderef_size = 0x95 # 1 | 1-byte size of data retrieved
|
437
|
+
DW_OP_nop = 0x96 # 0
|
438
|
+
DW_OP_push_object_address = 0x97 # 0
|
439
|
+
DW_OP_call2 = 0x98 # 1 | 2-byte offset of DIE
|
440
|
+
DW_OP_call4 = 0x99 # 1 | 4-byte offset of DIE
|
441
|
+
DW_OP_call_ref = 0x9a # 1 | 4- or 8-byte offset of DIE
|
442
|
+
DW_OP_form_tls_address = 0x9b # 0
|
443
|
+
DW_OP_call_frame_cfa = 0x9c # 0
|
444
|
+
DW_OP_bit_piece = 0x9d # 2 | ULEB128 size, ULEB128 offset
|
445
|
+
DW_OP_implicit_value = 0x9e # 2 | ULEB128 size, block of that size
|
446
|
+
DW_OP_stack_value = 0x9f # 0
|
447
|
+
DW_OP_implicit_pointer = 0xa0 # 2 | 4- or 8-byte offset of DIE, SLEB128 constant offset
|
448
|
+
DW_OP_addrx = 0xa1 # 1 | ULEB128 indirect address
|
449
|
+
DW_OP_constx = 0xa2 # 1 | ULEB128 indirect constant
|
450
|
+
DW_OP_entry_value = 0xa3 # 2 | ULEB128 size, block of that size
|
451
|
+
DW_OP_const_type = 0xa4 # 3 | ULEB128 type entry offset, 1-byte size, constant value
|
452
|
+
DW_OP_regval_type = 0xa5 # 2 | ULEB128 register number, ULEB128 constant offset
|
453
|
+
DW_OP_deref_type = 0xa6 # 2 | 1-byte size, ULEB128 type entry offset
|
454
|
+
DW_OP_xderef_type = 0xa7 # 2 | 1-byte size, ULEB128 type entry offset
|
455
|
+
DW_OP_convert = 0xa8 # 1 | ULEB128 type entry offset
|
456
|
+
DW_OP_reinterpret = 0xa9 # 1 | ULEB128 type entry offset
|
457
|
+
DW_OP_lo_user = 0xe0
|
458
|
+
DW_OP_hi_user = 0xff
|
459
|
+
# Table 7.10: Location list entry encoding values
|
460
|
+
# Location list entry encoding name | Value
|
461
|
+
DW_LLE_end_of_list = 0x00
|
462
|
+
DW_LLE_base_addressx = 0x01
|
463
|
+
DW_LLE_startx_endx = 0x02
|
464
|
+
DW_LLE_startx_length = 0x03
|
465
|
+
DW_LLE_offset_pair = 0x04
|
466
|
+
DW_LLE_default_location = 0x05
|
467
|
+
DW_LLE_base_address = 0x06
|
468
|
+
DW_LLE_start_end = 0x07
|
469
|
+
DW_LLE_start_length = 0x08
|
470
|
+
# Table 7.11: Base type encoding values
|
471
|
+
# Base type encoding name | Value
|
472
|
+
DW_ATE_address = 0x01
|
473
|
+
DW_ATE_boolean = 0x02
|
474
|
+
DW_ATE_complex_float = 0x03
|
475
|
+
DW_ATE_float = 0x04
|
476
|
+
DW_ATE_signed = 0x05
|
477
|
+
DW_ATE_signed_char = 0x06
|
478
|
+
DW_ATE_unsigned = 0x07
|
479
|
+
DW_ATE_unsigned_char = 0x08
|
480
|
+
DW_ATE_imaginary_float = 0x09
|
481
|
+
DW_ATE_packed_decimal = 0x0a
|
482
|
+
DW_ATE_numeric_string = 0x0b
|
483
|
+
DW_ATE_edited = 0x0c
|
484
|
+
DW_ATE_signed_fixed = 0x0d
|
485
|
+
DW_ATE_unsigned_fixed = 0x0e
|
486
|
+
DW_ATE_decimal_float = 0x0f
|
487
|
+
DW_ATE_UTF = 0x10
|
488
|
+
DW_ATE_UCS = 0x11
|
489
|
+
DW_ATE_ASCII = 0x12
|
490
|
+
DW_ATE_lo_user = 0x80
|
491
|
+
DW_ATE_hi_user = 0xff
|
492
|
+
# Table 7.12: Decimal sign encodings
|
493
|
+
# Decimal sign code name | Value
|
494
|
+
DW_DS_unsigned = 0x01
|
495
|
+
DW_DS_leading_overpunch = 0x02
|
496
|
+
DW_DS_trailing_overpunch = 0x03
|
497
|
+
DW_DS_leading_separate = 0x04
|
498
|
+
DW_DS_trailing_separate = 0x05
|
499
|
+
# Table 7.13: Endianity encodings
|
500
|
+
# Endian code name | Value
|
501
|
+
DW_END_default = 0x00
|
502
|
+
DW_END_big = 0x01
|
503
|
+
DW_END_little = 0x02
|
504
|
+
DW_END_lo_user = 0x40
|
505
|
+
DW_END_hi_user = 0xff
|
506
|
+
# Table 7.14: Accessibility encodings
|
507
|
+
# Accessibility code name | Value
|
508
|
+
DW_ACCESS_public = 0x01
|
509
|
+
DW_ACCESS_protected = 0x02
|
510
|
+
DW_ACCESS_private = 0x03
|
511
|
+
# Table 7.15: Visibility encodings
|
512
|
+
# Visibility code name | Value
|
513
|
+
DW_VIS_local = 0x01
|
514
|
+
DW_VIS_exported = 0x02
|
515
|
+
DW_VIS_qualified = 0x03
|
516
|
+
# Table 7.16: Virtuality encodings
|
517
|
+
# Virtuality code name | Value
|
518
|
+
DW_VIRTUALITY_none = 0x00
|
519
|
+
DW_VIRTUALITY_virtual = 0x01
|
520
|
+
DW_VIRTUALITY_pure_virtual = 0x02
|
521
|
+
# Table 7.17: Language encodings
|
522
|
+
# Language name | Value | Default Lower Bound
|
523
|
+
DW_LANG_C89 = 0x01 # 0
|
524
|
+
DW_LANG_C = 0x02 # 0
|
525
|
+
DW_LANG_Ada83 = 0x03 # 1
|
526
|
+
DW_LANG_C_plus_plus = 0x04 # 0
|
527
|
+
DW_LANG_Cobol74 = 0x05 # 1
|
528
|
+
DW_LANG_Cobol85 = 0x06 # 1
|
529
|
+
DW_LANG_Fortran77 = 0x07 # 1
|
530
|
+
DW_LANG_Fortran90 = 0x08 # 1
|
531
|
+
DW_LANG_Pascal83 = 0x09 # 1
|
532
|
+
DW_LANG_Modula2 = 0x0a # 1
|
533
|
+
DW_LANG_Java = 0x0b # 0
|
534
|
+
DW_LANG_C99 = 0x0c # 0
|
535
|
+
DW_LANG_Ada95 = 0x0d # 1
|
536
|
+
DW_LANG_Fortran95 = 0x0e # 1
|
537
|
+
DW_LANG_PLI = 0x0f # 1
|
538
|
+
DW_LANG_ObjC = 0x10 # 0
|
539
|
+
DW_LANG_ObjC_plus_plus = 0x11 # 0
|
540
|
+
DW_LANG_UPC = 0x12 # 0
|
541
|
+
DW_LANG_D = 0x13 # 0
|
542
|
+
DW_LANG_Python = 0x14 # 0
|
543
|
+
DW_LANG_OpenCL = 0x15 # 0
|
544
|
+
DW_LANG_Go = 0x16 # 0
|
545
|
+
DW_LANG_Modula3 = 0x17 # 1
|
546
|
+
DW_LANG_Haskell = 0x18 # 0
|
547
|
+
DW_LANG_C_plus_plus_03 = 0x19 # 0
|
548
|
+
DW_LANG_C_plus_plus_11 = 0x1a # 0
|
549
|
+
DW_LANG_OCaml = 0x1b # 0
|
550
|
+
DW_LANG_Rust = 0x1c # 0
|
551
|
+
DW_LANG_C11 = 0x1d # 0
|
552
|
+
DW_LANG_Swift = 0x1e # 0
|
553
|
+
DW_LANG_Julia = 0x1f # 1
|
554
|
+
DW_LANG_Dylan = 0x20 # 0
|
555
|
+
DW_LANG_C_plus_plus_14 = 0x21 # 0
|
556
|
+
DW_LANG_Fortran03 = 0x22 # 1
|
557
|
+
DW_LANG_Fortran08 = 0x23 # 1
|
558
|
+
DW_LANG_RenderScript = 0x24 # 0
|
559
|
+
DW_LANG_BLISS = 0x25 # 0
|
560
|
+
DW_LANG_lo_user = 0x8000
|
561
|
+
DW_LANG_hi_user = 0xffff
|
562
|
+
# Table 7.18: Identifier case encodings
|
563
|
+
# Identifier case name | Value
|
564
|
+
DW_ID_case_sensitive = 0x00
|
565
|
+
DW_ID_up_case = 0x01
|
566
|
+
DW_ID_down_case = 0x02
|
567
|
+
DW_ID_case_insensitive = 0x03
|
568
|
+
# Table 7.19: Calling convention encodings
|
569
|
+
# Calling convention name | Value
|
570
|
+
DW_CC_normal = 0x01
|
571
|
+
DW_CC_program = 0x02
|
572
|
+
DW_CC_nocall = 0x03
|
573
|
+
DW_CC_pass_by_reference = 0x04
|
574
|
+
DW_CC_pass_by_value = 0x05
|
575
|
+
DW_CC_lo_user = 0x40
|
576
|
+
DW_CC_hi_user = 0xff
|
577
|
+
# Table 7.20: Inline encodings
|
578
|
+
# Inline code name | Value
|
579
|
+
DW_INL_not_inlined = 0x00
|
580
|
+
DW_INL_inlined = 0x01
|
581
|
+
DW_INL_declared_not_inlined = 0x02
|
582
|
+
DW_INL_declared_inlined = 0x03
|
583
|
+
# Table 7.21: Ordering encodings
|
584
|
+
# Ordering name | Value
|
585
|
+
DW_ORD_row_major = 0x00
|
586
|
+
DW_ORD_col_major = 0x01
|
587
|
+
# Table 7.22: Discriminant descriptor encodings
|
588
|
+
# Descriptor name | Value
|
589
|
+
DW_DSC_label = 0x00
|
590
|
+
DW_DSC_range = 0x01
|
591
|
+
# Table 7.23: Name index attribute encodings
|
592
|
+
# Attribute name | Value | Form/Class
|
593
|
+
DW_IDX_compile_unit = 0x01 # constant
|
594
|
+
DW_IDX_type_unit = 0x02 # constant
|
595
|
+
DW_IDX_die_offset = 0x03 # reference
|
596
|
+
DW_IDX_parent = 0x04 # constant
|
597
|
+
DW_IDX_type_hash = 0x05 # DW_FORM_data8
|
598
|
+
DW_IDX_lo_user = 0x2000
|
599
|
+
DW_IDX_hi_user = 0x3fff
|
600
|
+
# Table 7.24: Defaulted attribute encodings
|
601
|
+
# Defaulted name | Value
|
602
|
+
DW_DEFAULTED_no = 0x00
|
603
|
+
DW_DEFAULTED_in_class = 0x01
|
604
|
+
DW_DEFAULTED_out_of_class = 0x02
|
605
|
+
# Table 7.25: Line number standard opcode encodings
|
606
|
+
# Opcode name | Value
|
607
|
+
DW_LNS_copy = 0x01
|
608
|
+
DW_LNS_advance_pc = 0x02
|
609
|
+
DW_LNS_advance_line = 0x03
|
610
|
+
DW_LNS_set_file = 0x04
|
611
|
+
DW_LNS_set_column = 0x05
|
612
|
+
DW_LNS_negate_stmt = 0x06
|
613
|
+
DW_LNS_set_basic_block = 0x07
|
614
|
+
DW_LNS_const_add_pc = 0x08
|
615
|
+
DW_LNS_fixed_advance_pc = 0x09
|
616
|
+
DW_LNS_set_prologue_end = 0x0a
|
617
|
+
DW_LNS_set_epilogue_begin = 0x0b
|
618
|
+
DW_LNS_set_isa = 0x0c
|
619
|
+
# Table 7.26: Line number extended opcode encodings
|
620
|
+
# Opcode name | Value
|
621
|
+
DW_LNE_end_sequence = 0x01
|
622
|
+
DW_LNE_set_address = 0x02
|
623
|
+
# Reserved = 0x34
|
624
|
+
DW_LNE_set_discriminator = 0x04
|
625
|
+
DW_LNE_lo_user = 0x80
|
626
|
+
DW_LNE_hi_user = 0xff
|
627
|
+
# Table 7.27: Line number header entry format encodings
|
628
|
+
# Line number header entry format name | Value
|
629
|
+
DW_LNCT_path = 0x01
|
630
|
+
DW_LNCT_directory_index = 0x02
|
631
|
+
DW_LNCT_timestamp = 0x03
|
632
|
+
DW_LNCT_size = 0x04
|
633
|
+
DW_LNCT_MD5 = 0x05
|
634
|
+
DW_LNCT_lo_user = 0x2000
|
635
|
+
DW_LNCT_hi_user = 0x3fff
|
636
|
+
# Table 7.28: Macro information entry type encodings
|
637
|
+
# Macro information entry type name | Value
|
638
|
+
DW_MACRO_define = 0x01
|
639
|
+
DW_MACRO_undef = 0x02
|
640
|
+
DW_MACRO_start_file = 0x03
|
641
|
+
DW_MACRO_end_file = 0x04
|
642
|
+
DW_MACRO_define_strp = 0x05
|
643
|
+
DW_MACRO_undef_strp = 0x06
|
644
|
+
DW_MACRO_import = 0x07
|
645
|
+
DW_MACRO_define_sup = 0x08
|
646
|
+
DW_MACRO_undef_sup = 0x09
|
647
|
+
DW_MACRO_import_sup = 0x0a
|
648
|
+
DW_MACRO_define_strx = 0x0b
|
649
|
+
DW_MACRO_undef_strx = 0x0c
|
650
|
+
DW_MACRO_lo_user = 0xe0
|
651
|
+
DW_MACRO_hi_user = 0xff
|
652
|
+
# Table 7.29: Call frame instruction encodings
|
653
|
+
# Instruction | High 2 Bits | Low 6 Bits | Operand 1 | Operand 2
|
654
|
+
DW_CFA_advance_loc = 0x01 # delta | |
|
655
|
+
DW_CFA_offset = 0x02 # register | ULEB128 offset
|
656
|
+
DW_CFA_restore = 0x03 # register | |
|
657
|
+
DW_CFA_nop = 0x00 # 0 | |
|
658
|
+
DW_CFA_set_loc = 0x00 # 1 | address
|
659
|
+
DW_CFA_advance_loc1 = 0x00 # 2 | 1-byte delta
|
660
|
+
DW_CFA_advance_loc2 = 0x00 # 3 | 2-byte delta
|
661
|
+
DW_CFA_advance_loc4 = 0x00 # 4 | 4-byte delta
|
662
|
+
DW_CFA_offset_extended = 0x00 # 5 | ULEB128 register | ULEB128 offset
|
663
|
+
DW_CFA_restore_extended = 0x00 # 6 | ULEB128 register
|
664
|
+
DW_CFA_undefined = 0x00 # 7 | ULEB128 register
|
665
|
+
DW_CFA_same_value = 0x00 # 8 | ULEB128 register
|
666
|
+
DW_CFA_register = 0x00 # 9 | ULEB128 register | ULEB128 offset
|
667
|
+
DW_CFA_remember_state = 0x00 # 10 | |
|
668
|
+
DW_CFA_restore_state = 0x00 # 11 | |
|
669
|
+
DW_CFA_def_cfa = 0x00 # 12 | ULEB128 register | ULEB128 offset
|
670
|
+
DW_CFA_def_cfa_register = 0x00 # 13 | ULEB128 register
|
671
|
+
DW_CFA_def_cfa_offset = 0x00 # 14 | ULEB128 offset
|
672
|
+
DW_CFA_def_cfa_expression = 0x00 # 15 | BLOCK
|
673
|
+
DW_CFA_expression = 0x00 # 16 | ULEB128 register | BLOCK
|
674
|
+
DW_CFA_offset_extended_sf = 0x00 # 17 | ULEB128 register | SLEB128 offset
|
675
|
+
DW_CFA_def_cfa_sf = 0x00 # 18 | ULEB128 register | SLEB128 offset
|
676
|
+
DW_CFA_def_cfa_offset_sf = 0x00 # 19 | SLEB128 offset
|
677
|
+
DW_CFA_val_offset = 0x00 # 20 | ULEB128 | ULEB128
|
678
|
+
DW_CFA_val_offset_sf = 0x00 # 21 | ULEB128 | SLEB128
|
679
|
+
DW_CFA_val_expression = 0x00 # 22 | ULEB128 | BLOCK
|
680
|
+
DW_CFA_lo_user = 0x00 # 28 | |
|
681
|
+
DW_CFA_hi_user = 0x00 # 63 | |
|
682
|
+
# Table 7.30: Range list entry encoding values
|
683
|
+
# Range list entry encoding name | Value
|
684
|
+
DW_RLE_end_of_list = 0x00
|
685
|
+
DW_RLE_base_addressx = 0x01
|
686
|
+
DW_RLE_startx_endx = 0x02
|
687
|
+
DW_RLE_startx_length = 0x03
|
688
|
+
DW_RLE_offset_pair = 0x04
|
689
|
+
DW_RLE_base_address = 0x05
|
690
|
+
DW_RLE_start_end = 0x06
|
691
|
+
DW_RLE_start_length = 0x07
|
692
|
+
end
|
693
|
+
end
|