worf 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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