blob: fbf2dcda3e3bfaf52ae412e8e69a279da0a4d159 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
|
;; @file
; IPRT - DWARF constants.
;
; Automatically generated by various.sed. DO NOT EDIT!
;
;
; Copyright (C) 2006-2019 Oracle Corporation
;
; This file is part of VirtualBox Open Source Edition (OSE), as
; available from http://www.virtualbox.org. This file is free software;
; you can redistribute it and/or modify it under the terms of the GNU
; General Public License (GPL) as published by the Free Software
; Foundation, in version 2 as it comes in the "COPYING" file of the
; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
;
; The contents of this file may alternatively be used under the terms
; of the Common Development and Distribution License Version 1.0
; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
; VirtualBox OSE distribution, in which case the provisions of the
; CDDL are applicable instead of those of the GPL.
;
; You may elect to license modified versions of this file under the
; terms and conditions of either the GPL or the CDDL or both.
;
%ifndef IPRT_INCLUDED_formats_dwarf_h
%define IPRT_INCLUDED_formats_dwarf_h
%ifndef RT_WITHOUT_PRAGMA_ONCE
%endif
%define DW_LNS_extended 0x00
%define DW_LNS_copy 0x01
%define DW_LNS_advance_pc 0x02
%define DW_LNS_advance_line 0x03
%define DW_LNS_set_file 0x04
%define DW_LNS_set_column 0x05
%define DW_LNS_negate_stmt 0x06
%define DW_LNS_set_basic_block 0x07
%define DW_LNS_const_add_pc 0x08
%define DW_LNS_fixed_advance_pc 0x09
%define DW_LNS_set_prologue_end 0x0a
%define DW_LNS_set_epilogue_begin 0x0b
%define DW_LNS_set_isa 0x0c
%define DW_LNS_what_question_mark 0x0d
%define DW_LNE_end_sequence 1
%define DW_LNE_set_address 2
%define DW_LNE_define_file 3
%define DW_LNE_set_descriminator 4
%define DW_TAG_array_type 0x0001
%define DW_TAG_class_type 0x0002
%define DW_TAG_entry_point 0x0003
%define DW_TAG_enumeration_type 0x0004
%define DW_TAG_formal_parameter 0x0005
%define DW_TAG_imported_declaration 0x0008
%define DW_TAG_label 0x000a
%define DW_TAG_lexical_block 0x000b
%define DW_TAG_member 0x000d
%define DW_TAG_pointer_type 0x000f
%define DW_TAG_reference_type 0x0010
%define DW_TAG_compile_unit 0x0011
%define DW_TAG_string_type 0x0012
%define DW_TAG_structure_type 0x0013
%define DW_TAG_subroutine_type 0x0015
%define DW_TAG_typedef 0x0016
%define DW_TAG_union_type 0x0017
%define DW_TAG_unspecified_parameters 0x0018
%define DW_TAG_variant 0x0019
%define DW_TAG_common_block 0x001a
%define DW_TAG_common_inclusion 0x001b
%define DW_TAG_inheritance 0x001c
%define DW_TAG_inlined_subroutine 0x001d
%define DW_TAG_module 0x001e
%define DW_TAG_ptr_to_member_type 0x001f
%define DW_TAG_set_type 0x0020
%define DW_TAG_subrange_type 0x0021
%define DW_TAG_with_stmt 0x0022
%define DW_TAG_access_declaration 0x0023
%define DW_TAG_base_type 0x0024
%define DW_TAG_catch_block 0x0025
%define DW_TAG_const_type 0x0026
%define DW_TAG_constant 0x0027
%define DW_TAG_enumerator 0x0028
%define DW_TAG_file_type 0x0029
%define DW_TAG_friend 0x002a
%define DW_TAG_namelist 0x002b
%define DW_TAG_namelist_item 0x002c
%define DW_TAG_packed_type 0x002d
%define DW_TAG_subprogram 0x002e
%define DW_TAG_template_type_parameter 0x002f
%define DW_TAG_template_value_parameter 0x0030
%define DW_TAG_thrown_type 0x0031
%define DW_TAG_try_block 0x0032
%define DW_TAG_variant_part 0x0033
%define DW_TAG_variable 0x0034
%define DW_TAG_volatile_type 0x0035
%define DW_TAG_dwarf_procedure 0x0036
%define DW_TAG_restrict_type 0x0037
%define DW_TAG_interface_type 0x0038
%define DW_TAG_namespace 0x0039
%define DW_TAG_imported_module 0x003a
%define DW_TAG_unspecified_type 0x003b
%define DW_TAG_partial_unit 0x003c
%define DW_TAG_imported_unit 0x003d
%define DW_TAG_condition 0x003f
%define DW_TAG_shared_type 0x0040
%define DW_TAG_type_unit 0x0041
%define DW_TAG_rvalue_reference_type 0x0042
%define DW_TAG_template_alias 0x0043
%define DW_TAG_lo_user 0x4080
%define DW_TAG_GNU_call_site 0x4109
%define DW_TAG_GNU_call_site_parameter 0x410a
%define DW_TAG_WATCOM_address_class_type 0x4100
%define DW_TAG_WATCOM_namespace 0x4101
%define DW_TAG_hi_user 0xffff
%define DW_CHILDREN_yes 1
%define DW_CHILDREN_no 0
%define DW_AT_sibling 0x0001
%define DW_AT_location 0x0002
%define DW_AT_name 0x0003
%define DW_AT_ordering 0x0009
%define DW_AT_byte_size 0x000b
%define DW_AT_bit_offset 0x000c
%define DW_AT_bit_size 0x000d
%define DW_AT_stmt_list 0x0010
%define DW_AT_low_pc 0x0011
%define DW_AT_high_pc 0x0012
%define DW_AT_language 0x0013
%define DW_AT_discr 0x0015
%define DW_AT_discr_value 0x0016
%define DW_AT_visibility 0x0017
%define DW_AT_import 0x0018
%define DW_AT_string_length 0x0019
%define DW_AT_common_reference 0x001a
%define DW_AT_comp_dir 0x001b
%define DW_AT_const_value 0x001c
%define DW_AT_containing_type 0x001d
%define DW_AT_default_value 0x001e
%define DW_AT_inline 0x0020
%define DW_AT_is_optional 0x0021
%define DW_AT_lower_bound 0x0022
%define DW_AT_producer 0x0025
%define DW_AT_prototyped 0x0027
%define DW_AT_return_addr 0x002a
%define DW_AT_start_scope 0x002c
%define DW_AT_bit_stride 0x002e
%define DW_AT_upper_bound 0x002f
%define DW_AT_abstract_origin 0x0031
%define DW_AT_accessibility 0x0032
%define DW_AT_address_class 0x0033
%define DW_AT_artificial 0x0034
%define DW_AT_base_types 0x0035
%define DW_AT_calling_convention 0x0036
%define DW_AT_count 0x0037
%define DW_AT_data_member_location 0x0038
%define DW_AT_decl_column 0x0039
%define DW_AT_decl_file 0x003a
%define DW_AT_decl_line 0x003b
%define DW_AT_declaration 0x003c
%define DW_AT_discr_list 0x003d
%define DW_AT_encoding 0x003e
%define DW_AT_external 0x003f
%define DW_AT_frame_base 0x0040
%define DW_AT_friend 0x0041
%define DW_AT_identifier_case 0x0042
%define DW_AT_macro_info 0x0043
%define DW_AT_namelist_item 0x0044
%define DW_AT_priority 0x0045
%define DW_AT_segment 0x0046
%define DW_AT_specification 0x0047
%define DW_AT_static_link 0x0048
%define DW_AT_type 0x0049
%define DW_AT_use_location 0x004a
%define DW_AT_variable_parameter 0x004b
%define DW_AT_virtuality 0x004c
%define DW_AT_vtable_elem_location 0x004d
%define DW_AT_allocated 0x004e
%define DW_AT_associated 0x004f
%define DW_AT_data_location 0x0050
%define DW_AT_byte_stride 0x0051
%define DW_AT_entry_pc 0x0052
%define DW_AT_use_UTF8 0x0053
%define DW_AT_extension 0x0054
%define DW_AT_ranges 0x0055
%define DW_AT_trampoline 0x0056
%define DW_AT_call_column 0x0057
%define DW_AT_call_file 0x0058
%define DW_AT_call_line 0x0059
%define DW_AT_description 0x005a
%define DW_AT_binary_scale 0x005b
%define DW_AT_decimal_scale 0x005c
%define DW_AT_small 0x005d
%define DW_AT_decimal_sign 0x005e
%define DW_AT_digit_count 0x005f
%define DW_AT_picture_string 0x0060
%define DW_AT_mutable 0x0061
%define DW_AT_threads_scaled 0x0062
%define DW_AT_explicit 0x0063
%define DW_AT_object_pointer 0x0064
%define DW_AT_endianity 0x0065
%define DW_AT_elemental 0x0066
%define DW_AT_pure 0x0067
%define DW_AT_recursive 0x0068
%define DW_AT_signature 0x0069
%define DW_AT_main_subprogram 0x006a
%define DW_AT_data_bit_offset 0x006b
%define DW_AT_const_expr 0x006c
%define DW_AT_enum_class 0x006d
%define DW_AT_linkage_name 0x006e
%define DW_AT_lo_user 0x2000
%define DW_AT_MIPS_linkage_name 0x2007
%define DW_AT_WATCOM_memory_model 0x2082
%define DW_AT_WATCOM_references_start 0x2083
%define DW_AT_WATCOM_parm_entry 0x2084
%define DW_AT_hi_user 0x3fff
%define DW_FORM_addr 0x01
%define DW_FORM_block2 0x03
%define DW_FORM_block4 0x04
%define DW_FORM_data2 0x05
%define DW_FORM_data4 0x06
%define DW_FORM_data8 0x07
%define DW_FORM_string 0x08
%define DW_FORM_block 0x09
%define DW_FORM_block1 0x0a
%define DW_FORM_data1 0x0b
%define DW_FORM_flag 0x0c
%define DW_FORM_sdata 0x0d
%define DW_FORM_strp 0x0e
%define DW_FORM_udata 0x0f
%define DW_FORM_ref_addr 0x10
%define DW_FORM_ref1 0x11
%define DW_FORM_ref2 0x12
%define DW_FORM_ref4 0x13
%define DW_FORM_ref8 0x14
%define DW_FORM_ref_udata 0x15
%define DW_FORM_indirect 0x16
%define DW_FORM_sec_offset 0x17
%define DW_FORM_exprloc 0x18
%define DW_FORM_flag_present 0x19
%define DW_FORM_ref_sig8 0x20
%define DW_ADDR_none 0
%define DW_ADDR_i386_near16 1
%define DW_ADDR_i386_far16 2
%define DW_ADDR_i386_huge16 3
%define DW_ADDR_i386_near32 4
%define DW_ADDR_i386_far32 5
%define DW_OP_addr 0x03
%define DW_OP_deref 0x06
%define DW_OP_const1u 0x08
%define DW_OP_const1s 0x09
%define DW_OP_const2u 0x0a
%define DW_OP_const2s 0x0b
%define DW_OP_const4u 0x0c
%define DW_OP_const4s 0x0d
%define DW_OP_const8u 0x0e
%define DW_OP_const8s 0x0f
%define DW_OP_constu 0x10
%define DW_OP_consts 0x11
%define DW_OP_dup 0x12
%define DW_OP_drop 0x13
%define DW_OP_over 0x14
%define DW_OP_pick 0x15
%define DW_OP_swap 0x16
%define DW_OP_rot 0x17
%define DW_OP_xderef 0x18
%define DW_OP_abs 0x19
%define DW_OP_and 0x1a
%define DW_OP_div 0x1b
%define DW_OP_minus 0x1c
%define DW_OP_mod 0x1d
%define DW_OP_mul 0x1e
%define DW_OP_neg 0x1f
%define DW_OP_not 0x20
%define DW_OP_or 0x21
%define DW_OP_plus 0x22
%define DW_OP_plus_uconst 0x23
%define DW_OP_shl 0x24
%define DW_OP_shr 0x25
%define DW_OP_shra 0x26
%define DW_OP_xor 0x27
%define DW_OP_skip 0x2f
%define DW_OP_bra 0x28
%define DW_OP_eq 0x29
%define DW_OP_ge 0x2a
%define DW_OP_gt 0x2b
%define DW_OP_le 0x2c
%define DW_OP_lt 0x2d
%define DW_OP_ne 0x2e
%define DW_OP_lit0 0x30
%define DW_OP_lit31 0x4f
%define DW_OP_reg0 0x50
%define DW_OP_reg31 0x6f
%define DW_OP_breg0 0x70
%define DW_OP_breg31 0x8f
%define DW_OP_regx 0x90
%define DW_OP_fbreg 0x91
%define DW_OP_bregx 0x92
%define DW_OP_piece 0x93
%define DW_OP_deref_size 0x94
%define DW_OP_xderef_size 0x95
%define DW_OP_nop 0x96
%define DW_OP_lo_user 0xe0
%define DW_OP_hi_user 0xff
%define DW_EH_PE_FORMAT_MASK 0x0f
%define DW_EH_PE_APPL_MASK 0x70
%define DW_EH_PE_indirect 0x80
%define DW_EH_PE_omit 0xff
%define DW_EH_PE_ptr 0x00
%define DW_EH_PE_uleb128 0x01
%define DW_EH_PE_udata2 0x02
%define DW_EH_PE_udata4 0x03
%define DW_EH_PE_udata8 0x04
%define DW_EH_PE_sleb128 0x09
%define DW_EH_PE_sdata2 0x0a
%define DW_EH_PE_sdata4 0x0b
%define DW_EH_PE_sdata8 0x0c
%define DW_EH_PE_absptr 0x00
%define DW_EH_PE_pcrel 0x10
%define DW_EH_PE_textrel 0x20
%define DW_EH_PE_datarel 0x30
%define DW_EH_PE_funcrel 0x40
%define DW_EH_PE_aligned 0x50
%define DW_CFA_high_bit_mask 0xc0
%define DW_CFA_nop 0x00
%define DW_CFA_advance_loc 0x40
%define DW_CFA_set_loc 0x01
%define DW_CFA_advance_loc1 0x02
%define DW_CFA_advance_loc2 0x03
%define DW_CFA_advance_loc4 0x04
%define DW_CFA_offset 0x80
%define DW_CFA_offset_extended 0x05
%define DW_CFA_offset_extended_sf 0x11
%define DW_CFA_restore 0xc0
%define DW_CFA_restore_extended 0x06
%define DW_CFA_undefined 0x07
%define DW_CFA_same_value 0x08
%define DW_CFA_register 0x09
%define DW_CFA_expression 0x10
%define DW_CFA_val_offset 0x14
%define DW_CFA_val_offset_sf 0x15
%define DW_CFA_val_expression 0x16
%define DW_CFA_remember_state 0x0a
%define DW_CFA_restore_state 0x0b
%define DW_CFA_def_cfa 0x0c
%define DW_CFA_def_cfa_register 0x0d
%define DW_CFA_def_cfa_offset 0x0e
%define DW_CFA_def_cfa_expression 0x0f
%define DW_CFA_def_cfa_sf 0x12
%define DW_CFA_def_cfa_offset_sf 0x13
%define DW_CFA_lo_user 0x1c
%define DW_CFA_MIPS_advance_loc8 0x1d
%define DW_CFA_GNU_window_save 0x2d
%define DW_CFA_GNU_args_size 0x2e
%define DW_CFA_GNU_negative_offset_extended 0x2f
%define DW_CFA_hi_user 0x3f
%define DWREG_X86_EAX 0
%define DWREG_X86_ECX 1
%define DWREG_X86_EDX 2
%define DWREG_X86_EBX 3
%define DWREG_X86_ESP 4
%define DWREG_X86_EBP 5
%define DWREG_X86_ESI 6
%define DWREG_X86_EDI 7
%define DWREG_X86_RA 8
%define DWREG_X86_EFLAGS 9
%define DWREG_X86_ST1 11
%define DWREG_X86_ST2 12
%define DWREG_X86_ST3 13
%define DWREG_X86_ST4 14
%define DWREG_X86_ST5 15
%define DWREG_X86_ST6 16
%define DWREG_X86_ST7 17
%define DWREG_X86_XMM0 21
%define DWREG_X86_XMM1 22
%define DWREG_X86_XMM2 23
%define DWREG_X86_XMM3 24
%define DWREG_X86_XMM4 25
%define DWREG_X86_XMM5 26
%define DWREG_X86_XMM6 27
%define DWREG_X86_XMM7 28
%define DWREG_X86_MM0 29
%define DWREG_X86_MM1 30
%define DWREG_X86_MM2 31
%define DWREG_X86_MM3 32
%define DWREG_X86_MM4 33
%define DWREG_X86_MM5 34
%define DWREG_X86_MM6 35
%define DWREG_X86_MM7 36
%define DWREG_X86_MXCSR 39
%define DWREG_X86_ES 40
%define DWREG_X86_CS 41
%define DWREG_X86_SS 42
%define DWREG_X86_DS 43
%define DWREG_X86_FS 44
%define DWREG_X86_GS 45
%define DWREG_X86_TR 48
%define DWREG_X86_LDTR 49
%define DWREG_AMD64_RAX 0
%define DWREG_AMD64_RDX 1
%define DWREG_AMD64_RCX 2
%define DWREG_AMD64_RBX 3
%define DWREG_AMD64_RSI 4
%define DWREG_AMD64_RDI 5
%define DWREG_AMD64_RBP 6
%define DWREG_AMD64_RSP 7
%define DWREG_AMD64_R8 8
%define DWREG_AMD64_R9 9
%define DWREG_AMD64_R10 10
%define DWREG_AMD64_R11 11
%define DWREG_AMD64_R12 12
%define DWREG_AMD64_R13 13
%define DWREG_AMD64_R14 14
%define DWREG_AMD64_R15 15
%define DWREG_AMD64_RA 16
%define DWREG_AMD64_XMM0 17
%define DWREG_AMD64_XMM1 18
%define DWREG_AMD64_XMM2 19
%define DWREG_AMD64_XMM3 20
%define DWREG_AMD64_XMM4 21
%define DWREG_AMD64_XMM5 22
%define DWREG_AMD64_XMM6 23
%define DWREG_AMD64_XMM7 24
%define DWREG_AMD64_XMM8 25
%define DWREG_AMD64_XMM9 26
%define DWREG_AMD64_XMM10 27
%define DWREG_AMD64_XMM11 28
%define DWREG_AMD64_XMM12 29
%define DWREG_AMD64_XMM13 30
%define DWREG_AMD64_XMM14 31
%define DWREG_AMD64_XMM15 32
%define DWREG_AMD64_ST0 33
%define DWREG_AMD64_ST1 34
%define DWREG_AMD64_ST2 35
%define DWREG_AMD64_ST3 36
%define DWREG_AMD64_ST4 37
%define DWREG_AMD64_ST5 38
%define DWREG_AMD64_ST6 39
%define DWREG_AMD64_ST7 40
%define DWREG_AMD64_MM0 41
%define DWREG_AMD64_MM1 42
%define DWREG_AMD64_MM2 43
%define DWREG_AMD64_MM3 44
%define DWREG_AMD64_MM4 45
%define DWREG_AMD64_MM5 46
%define DWREG_AMD64_MM6 47
%define DWREG_AMD64_MM7 48
%define DWREG_AMD64_RFLAGS 49
%define DWREG_AMD64_ES 50
%define DWREG_AMD64_CS 51
%define DWREG_AMD64_SS 52
%define DWREG_AMD64_DS 53
%define DWREG_AMD64_FS 54
%define DWREG_AMD64_GS 55
%define DWREG_AMD64_FS_BASE 58
%define DWREG_AMD64_GS_BASE 59
%define DWREG_AMD64_TR 62
%define DWREG_AMD64_LDTR 63
%define DWREG_AMD64_MXCSR 64
%define DWREG_AMD64_FCW 65
%define DWREG_AMD64_FSW 66
%endif
|