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.
@@ -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