Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/elftoolchain/libdwarf/dwarf.h
39483 views
1
/*-
2
* Copyright (c) 2007 John Birrell ([email protected])
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
*notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
*notice, this list of conditions and the following disclaimer in the
12
*documentation and/or other materials provided with the distribution.
13
*
14
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
* ARE DISCLAIMED.IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24
* SUCH DAMAGE.
25
*
26
* $Id: dwarf.h 3749 2019-06-28 01:10:44Z emaste $
27
*/
28
29
#ifndef _DWARF_H_
30
#define _DWARF_H_
31
32
#define DW_TAG_array_type 0x01
33
#define DW_TAG_class_type 0x02
34
#define DW_TAG_entry_point 0x03
35
#define DW_TAG_enumeration_type 0x04
36
#define DW_TAG_formal_parameter 0x05
37
#define DW_TAG_imported_declaration 0x08
38
#define DW_TAG_label 0x0a
39
#define DW_TAG_lexical_block 0x0b
40
#define DW_TAG_member 0x0d
41
#define DW_TAG_pointer_type 0x0f
42
#define DW_TAG_reference_type 0x10
43
#define DW_TAG_compile_unit 0x11
44
#define DW_TAG_string_type 0x12
45
#define DW_TAG_structure_type 0x13
46
#define DW_TAG_subroutine_type 0x15
47
#define DW_TAG_typedef 0x16
48
#define DW_TAG_union_type 0x17
49
#define DW_TAG_unspecified_parameters 0x18
50
#define DW_TAG_variant 0x19
51
#define DW_TAG_common_block 0x1a
52
#define DW_TAG_common_inclusion 0x1b
53
#define DW_TAG_inheritance 0x1c
54
#define DW_TAG_inlined_subroutine 0x1d
55
#define DW_TAG_module 0x1e
56
#define DW_TAG_ptr_to_member_type 0x1f
57
#define DW_TAG_set_type 0x20
58
#define DW_TAG_subrange_type 0x21
59
#define DW_TAG_with_stmt 0x22
60
#define DW_TAG_access_declaration 0x23
61
#define DW_TAG_base_type 0x24
62
#define DW_TAG_catch_block 0x25
63
#define DW_TAG_const_type 0x26
64
#define DW_TAG_constant 0x27
65
#define DW_TAG_enumerator 0x28
66
#define DW_TAG_friend 0x2a
67
#define DW_TAG_namelist 0x2b
68
#define DW_TAG_namelist_item 0x2c
69
#define DW_TAG_packed_type 0x2d
70
#define DW_TAG_subprogram 0x2e
71
#define DW_TAG_template_type_parameter 0x2f
72
#define DW_TAG_template_type_param 0x2f
73
#define DW_TAG_template_value_parameter 0x30
74
#define DW_TAG_template_value_param 0x30
75
#define DW_TAG_thrown_type 0x31
76
#define DW_TAG_try_block 0x32
77
#define DW_TAG_variant_part 0x33
78
#define DW_TAG_variable 0x34
79
#define DW_TAG_volatile_type 0x35
80
#define DW_TAG_dwarf_procedure 0x36
81
#define DW_TAG_restrict_type 0x37
82
#define DW_TAG_interface_type 0x38
83
#define DW_TAG_namespace 0x39
84
#define DW_TAG_imported_module 0x3a
85
#define DW_TAG_unspecified_type 0x3b
86
#define DW_TAG_partial_unit 0x3c
87
#define DW_TAG_imported_unit 0x3d
88
#define DW_TAG_condition 0x3f
89
#define DW_TAG_shared_type 0x40
90
#define DW_TAG_type_unit 0x41
91
#define DW_TAG_rvalue_reference_type 0x42
92
#define DW_TAG_template_alias 0x43
93
#define DW_TAG_coarray_type 0x44
94
#define DW_TAG_generic_subrange 0x45
95
#define DW_TAG_dynamic_type 0x46
96
#define DW_TAG_atomic_type 0x47
97
#define DW_TAG_call_site 0x48
98
#define DW_TAG_call_site_parameter 0x49
99
#define DW_TAG_skeleton_unit 0x4a
100
#define DW_TAG_immutable_type 0x4b
101
#define DW_TAG_lo_user 0x4080
102
#define DW_TAG_hi_user 0xffff
103
104
/* GNU extensions. */
105
#define DW_TAG_format_label 0x4101
106
#define DW_TAG_function_template 0x4102
107
#define DW_TAG_class_template 0x4103
108
#define DW_TAG_GNU_BINCL 0x4104
109
#define DW_TAG_GNU_EINCL 0x4105
110
#define DW_TAG_GNU_template_template_parameter 0x4106
111
#define DW_TAG_GNU_template_template_param 0x4106
112
#define DW_TAG_GNU_template_parameter_pack 0x4107
113
#define DW_TAG_GNU_formal_parameter_pack 0x4108
114
#define DW_TAG_GNU_call_site 0x4109
115
#define DW_TAG_GNU_call_site_parameter 0x410a
116
117
#define DW_CHILDREN_no 0x00
118
#define DW_CHILDREN_yes 0x01
119
120
#define DW_AT_sibling 0x01
121
#define DW_AT_location 0x02
122
#define DW_AT_name 0x03
123
#define DW_AT_ordering 0x09
124
#define DW_AT_subscr_data 0x0a
125
#define DW_AT_byte_size 0x0b
126
#define DW_AT_bit_offset 0x0c
127
#define DW_AT_bit_size 0x0d
128
#define DW_AT_element_list 0x0f
129
#define DW_AT_stmt_list 0x10
130
#define DW_AT_low_pc 0x11
131
#define DW_AT_high_pc 0x12
132
#define DW_AT_language 0x13
133
#define DW_AT_member 0x14
134
#define DW_AT_discr 0x15
135
#define DW_AT_discr_value 0x16
136
#define DW_AT_visibility 0x17
137
#define DW_AT_import 0x18
138
#define DW_AT_string_length 0x19
139
#define DW_AT_common_reference 0x1a
140
#define DW_AT_comp_dir 0x1b
141
#define DW_AT_const_value 0x1c
142
#define DW_AT_containing_type 0x1d
143
#define DW_AT_default_value 0x1e
144
#define DW_AT_inline 0x20
145
#define DW_AT_is_optional 0x21
146
#define DW_AT_lower_bound 0x22
147
#define DW_AT_producer 0x25
148
#define DW_AT_prototyped 0x27
149
#define DW_AT_return_addr 0x2a
150
#define DW_AT_start_scope 0x2c
151
#define DW_AT_bit_stride 0x2e
152
#define DW_AT_stride_size 0x2e
153
#define DW_AT_upper_bound 0x2f
154
#define DW_AT_abstract_origin 0x31
155
#define DW_AT_accessibility 0x32
156
#define DW_AT_address_class 0x33
157
#define DW_AT_artificial 0x34
158
#define DW_AT_base_types 0x35
159
#define DW_AT_calling_convention 0x36
160
#define DW_AT_count 0x37
161
#define DW_AT_data_member_location 0x38
162
#define DW_AT_decl_column 0x39
163
#define DW_AT_decl_file 0x3a
164
#define DW_AT_decl_line 0x3b
165
#define DW_AT_declaration 0x3c
166
#define DW_AT_discr_list 0x3d
167
#define DW_AT_encoding 0x3e
168
#define DW_AT_external 0x3f
169
#define DW_AT_frame_base 0x40
170
#define DW_AT_friend 0x41
171
#define DW_AT_identifier_case 0x42
172
#define DW_AT_macro_info 0x43
173
#define DW_AT_namelist_item 0x44
174
#define DW_AT_priority 0x45
175
#define DW_AT_segment 0x46
176
#define DW_AT_specification 0x47
177
#define DW_AT_static_link 0x48
178
#define DW_AT_type 0x49
179
#define DW_AT_use_location 0x4a
180
#define DW_AT_variable_parameter 0x4b
181
#define DW_AT_virtuality 0x4c
182
#define DW_AT_vtable_elem_location 0x4d
183
#define DW_AT_allocated 0x4e
184
#define DW_AT_associated 0x4f
185
#define DW_AT_data_location 0x50
186
#define DW_AT_byte_stride 0x51
187
#define DW_AT_entry_pc 0x52
188
#define DW_AT_use_UTF8 0x53
189
#define DW_AT_extension 0x54
190
#define DW_AT_ranges 0x55
191
#define DW_AT_trampoline 0x56
192
#define DW_AT_call_column 0x57
193
#define DW_AT_call_file 0x58
194
#define DW_AT_call_line 0x59
195
#define DW_AT_description 0x5a
196
#define DW_AT_binary_scale 0x5b
197
#define DW_AT_decimal_scale 0x5c
198
#define DW_AT_small 0x5d
199
#define DW_AT_decimal_sign 0x5e
200
#define DW_AT_digit_count 0x5f
201
#define DW_AT_picture_string 0x60
202
#define DW_AT_mutable 0x61
203
#define DW_AT_threads_scaled 0x62
204
#define DW_AT_explicit 0x63
205
#define DW_AT_object_pointer 0x64
206
#define DW_AT_endianity 0x65
207
#define DW_AT_elemental 0x66
208
#define DW_AT_pure 0x67
209
#define DW_AT_recursive 0x68
210
#define DW_AT_signature 0x69
211
#define DW_AT_main_subprogram 0x6a
212
#define DW_AT_data_bit_offset 0x6b
213
#define DW_AT_const_expr 0x6c
214
#define DW_AT_enum_class 0x6d
215
#define DW_AT_linkage_name 0x6e
216
#define DW_AT_string_length_bit_size 0x6f
217
#define DW_AT_string_length_byte_size 0x70
218
#define DW_AT_rank 0x71
219
#define DW_AT_str_offsets_base 0x72
220
#define DW_AT_addr_base 0x73
221
#define DW_AT_rnglists_base 0x74
222
#define DW_AT_dwo_name 0x76
223
#define DW_AT_reference 0x77
224
#define DW_AT_rvalue_reference 0x78
225
#define DW_AT_macros 0x79
226
#define DW_AT_call_all_calls 0x7a
227
#define DW_AT_call_all_source_calls 0x7b
228
#define DW_AT_call_all_tail_calls 0x7c
229
#define DW_AT_call_return_pc 0x7d
230
#define DW_AT_call_value 0x7e
231
#define DW_AT_call_origin 0x7f
232
#define DW_AT_call_parameter 0x80
233
#define DW_AT_call_pc 0x81
234
#define DW_AT_call_tail_call 0x82
235
#define DW_AT_call_target 0x83
236
#define DW_AT_call_target_clobbered 0x84
237
#define DW_AT_call_data_location 0x85
238
#define DW_AT_call_data_value 0x86
239
#define DW_AT_noreturn 0x87
240
#define DW_AT_alignment 0x88
241
#define DW_AT_export_symbols 0x89
242
#define DW_AT_deleted 0x8a
243
#define DW_AT_defaulted 0x8b
244
#define DW_AT_loclists_base 0x8c
245
#define DW_AT_lo_user 0x2000
246
#define DW_AT_hi_user 0x3fff
247
248
/* SGI/MIPS extensions. */
249
#define DW_AT_MIPS_fde 0x2001
250
#define DW_AT_MIPS_loop_begin 0x2002
251
#define DW_AT_MIPS_tail_loop_begin 0x2003
252
#define DW_AT_MIPS_epilog_begin 0x2004
253
#define DW_AT_MIPS_loop_unroll_factor 0x2005
254
#define DW_AT_MIPS_software_pipeline_depth 0x2006
255
#define DW_AT_MIPS_linkage_name 0x2007
256
#define DW_AT_MIPS_stride 0x2008
257
#define DW_AT_MIPS_abstract_name 0x2009
258
#define DW_AT_MIPS_clone_origin 0x200a
259
#define DW_AT_MIPS_has_inlines 0x200b
260
#define DW_AT_MIPS_stride_byte 0x200c
261
#define DW_AT_MIPS_stride_elem 0x200d
262
#define DW_AT_MIPS_ptr_dopetype 0x200e
263
#define DW_AT_MIPS_allocatable_dopetype 0x200f
264
#define DW_AT_MIPS_assumed_shape_dopetype 0x2010
265
#define DW_AT_MIPS_assumed_size 0x2011
266
267
/* GNU extensions. */
268
#define DW_AT_sf_names 0x2101
269
#define DW_AT_src_info 0x2102
270
#define DW_AT_mac_info 0x2103
271
#define DW_AT_src_coords 0x2104
272
#define DW_AT_body_begin 0x2105
273
#define DW_AT_body_end 0x2106
274
#define DW_AT_GNU_vector 0x2107
275
#define DW_AT_GNU_guarded_by 0x2108
276
#define DW_AT_GNU_pt_guarded_by 0x2109
277
#define DW_AT_GNU_guarded 0x210a
278
#define DW_AT_GNU_pt_guarded 0x210b
279
#define DW_AT_GNU_locks_excluded 0x210c
280
#define DW_AT_GNU_exclusive_locks_required 0x210d
281
#define DW_AT_GNU_shared_locks_required 0x210e
282
#define DW_AT_GNU_odr_signature 0x210f
283
#define DW_AT_GNU_template_name 0x2110
284
#define DW_AT_GNU_call_site_value 0x2111
285
#define DW_AT_GNU_call_site_data_value 0x2112
286
#define DW_AT_GNU_call_site_target 0x2113
287
#define DW_AT_GNU_call_site_target_clobbered 0x2114
288
#define DW_AT_GNU_tail_call 0x2115
289
#define DW_AT_GNU_all_tail_call_sites 0x2116
290
#define DW_AT_GNU_all_call_sites 0x2117
291
#define DW_AT_GNU_all_source_call_sites 0x2118
292
293
/* Apple extensions. */
294
#define DW_AT_APPLE_optimized 0x3fe1
295
#define DW_AT_APPLE_flags 0x3fe2
296
#define DW_AT_APPLE_isa 0x3fe3
297
#define DW_AT_APPLE_block 0x3fe4
298
#define DW_AT_APPLE_major_runtime_vers 0x3fe5
299
#define DW_AT_APPLE_runtime_class 0x3fe6
300
#define DW_AT_APPLE_omit_frame_ptr 0x3fe7
301
#define DW_AT_APPLE_property_name 0x3fe8
302
#define DW_AT_APPLE_property_getter 0x3fe9
303
#define DW_AT_APPLE_property_setter 0x3fea
304
#define DW_AT_APPLE_property_attribute 0x3feb
305
#define DW_AT_APPLE_objc_complete_type 0x3fec
306
#define DW_AT_APPLE_property 0x3fed
307
308
#define DW_FORM_addr 0x01
309
#define DW_FORM_block2 0x03
310
#define DW_FORM_block4 0x04
311
#define DW_FORM_data2 0x05
312
#define DW_FORM_data4 0x06
313
#define DW_FORM_data8 0x07
314
#define DW_FORM_string 0x08
315
#define DW_FORM_block 0x09
316
#define DW_FORM_block1 0x0a
317
#define DW_FORM_data1 0x0b
318
#define DW_FORM_flag 0x0c
319
#define DW_FORM_sdata 0x0d
320
#define DW_FORM_strp 0x0e
321
#define DW_FORM_udata 0x0f
322
#define DW_FORM_ref_addr 0x10
323
#define DW_FORM_ref1 0x11
324
#define DW_FORM_ref2 0x12
325
#define DW_FORM_ref4 0x13
326
#define DW_FORM_ref8 0x14
327
#define DW_FORM_ref_udata 0x15
328
#define DW_FORM_indirect 0x16
329
#define DW_FORM_sec_offset 0x17
330
#define DW_FORM_exprloc 0x18
331
#define DW_FORM_flag_present 0x19
332
#define DW_FORM_strx 0x1a
333
#define DW_FORM_addrx 0x1b
334
#define DW_FORM_ref_sup4 0x1c
335
#define DW_FORM_strp_sup 0x1d
336
#define DW_FORM_data16 0x1e
337
#define DW_FORM_line_strp 0x1f
338
#define DW_FORM_ref_sig8 0x20
339
#define DW_FORM_implicit_const 0x21
340
#define DW_FORM_loclistx 0x22
341
#define DW_FORM_rnglistx 0x23
342
#define DW_FORM_ref_sup8 0x24
343
#define DW_FORM_ref_strx1 0x25
344
#define DW_FORM_ref_strx2 0x26
345
#define DW_FORM_ref_strx3 0x27
346
#define DW_FORM_ref_strx4 0x28
347
#define DW_FORM_ref_addrx1 0x29
348
#define DW_FORM_ref_addrx2 0x2a
349
#define DW_FORM_ref_addrx3 0x2b
350
#define DW_FORM_ref_addrx4 0x2c
351
#define DW_FORM_GNU_ref_alt 0x1f20
352
#define DW_FORM_GNU_strp_alt 0x1f21
353
354
#define DW_OP_addr 0x03
355
#define DW_OP_deref 0x06
356
#define DW_OP_const1u 0x08
357
#define DW_OP_const1s 0x09
358
#define DW_OP_const2u 0x0a
359
#define DW_OP_const2s 0x0b
360
#define DW_OP_const4u 0x0c
361
#define DW_OP_const4s 0x0d
362
#define DW_OP_const8u 0x0e
363
#define DW_OP_const8s 0x0f
364
#define DW_OP_constu 0x10
365
#define DW_OP_consts 0x11
366
#define DW_OP_dup 0x12
367
#define DW_OP_drop 0x13
368
#define DW_OP_over 0x14
369
#define DW_OP_pick 0x15
370
#define DW_OP_swap 0x16
371
#define DW_OP_rot 0x17
372
#define DW_OP_xderef 0x18
373
#define DW_OP_abs 0x19
374
#define DW_OP_and 0x1a
375
#define DW_OP_div 0x1b
376
#define DW_OP_minus 0x1c
377
#define DW_OP_mod 0x1d
378
#define DW_OP_mul 0x1e
379
#define DW_OP_neg 0x1f
380
#define DW_OP_not 0x20
381
#define DW_OP_or 0x21
382
#define DW_OP_plus 0x22
383
#define DW_OP_plus_uconst 0x23
384
#define DW_OP_shl 0x24
385
#define DW_OP_shr 0x25
386
#define DW_OP_shra 0x26
387
#define DW_OP_xor 0x27
388
#define DW_OP_bra 0x28
389
#define DW_OP_eq 0x29
390
#define DW_OP_ge 0x2a
391
#define DW_OP_gt 0x2b
392
#define DW_OP_le 0x2c
393
#define DW_OP_lt 0x2d
394
#define DW_OP_ne 0x2e
395
#define DW_OP_skip 0x2f
396
#define DW_OP_lit0 0x30
397
#define DW_OP_lit1 0x31
398
#define DW_OP_lit2 0x32
399
#define DW_OP_lit3 0x33
400
#define DW_OP_lit4 0x34
401
#define DW_OP_lit5 0x35
402
#define DW_OP_lit6 0x36
403
#define DW_OP_lit7 0x37
404
#define DW_OP_lit8 0x38
405
#define DW_OP_lit9 0x39
406
#define DW_OP_lit10 0x3a
407
#define DW_OP_lit11 0x3b
408
#define DW_OP_lit12 0x3c
409
#define DW_OP_lit13 0x3d
410
#define DW_OP_lit14 0x3e
411
#define DW_OP_lit15 0x3f
412
#define DW_OP_lit16 0x40
413
#define DW_OP_lit17 0x41
414
#define DW_OP_lit18 0x42
415
#define DW_OP_lit19 0x43
416
#define DW_OP_lit20 0x44
417
#define DW_OP_lit21 0x45
418
#define DW_OP_lit22 0x46
419
#define DW_OP_lit23 0x47
420
#define DW_OP_lit24 0x48
421
#define DW_OP_lit25 0x49
422
#define DW_OP_lit26 0x4a
423
#define DW_OP_lit27 0x4b
424
#define DW_OP_lit28 0x4c
425
#define DW_OP_lit29 0x4d
426
#define DW_OP_lit30 0x4e
427
#define DW_OP_lit31 0x4f
428
#define DW_OP_reg0 0x50
429
#define DW_OP_reg1 0x51
430
#define DW_OP_reg2 0x52
431
#define DW_OP_reg3 0x53
432
#define DW_OP_reg4 0x54
433
#define DW_OP_reg5 0x55
434
#define DW_OP_reg6 0x56
435
#define DW_OP_reg7 0x57
436
#define DW_OP_reg8 0x58
437
#define DW_OP_reg9 0x59
438
#define DW_OP_reg10 0x5a
439
#define DW_OP_reg11 0x5b
440
#define DW_OP_reg12 0x5c
441
#define DW_OP_reg13 0x5d
442
#define DW_OP_reg14 0x5e
443
#define DW_OP_reg15 0x5f
444
#define DW_OP_reg16 0x60
445
#define DW_OP_reg17 0x61
446
#define DW_OP_reg18 0x62
447
#define DW_OP_reg19 0x63
448
#define DW_OP_reg20 0x64
449
#define DW_OP_reg21 0x65
450
#define DW_OP_reg22 0x66
451
#define DW_OP_reg23 0x67
452
#define DW_OP_reg24 0x68
453
#define DW_OP_reg25 0x69
454
#define DW_OP_reg26 0x6a
455
#define DW_OP_reg27 0x6b
456
#define DW_OP_reg28 0x6c
457
#define DW_OP_reg29 0x6d
458
#define DW_OP_reg30 0x6e
459
#define DW_OP_reg31 0x6f
460
#define DW_OP_breg0 0x70
461
#define DW_OP_breg1 0x71
462
#define DW_OP_breg2 0x72
463
#define DW_OP_breg3 0x73
464
#define DW_OP_breg4 0x74
465
#define DW_OP_breg5 0x75
466
#define DW_OP_breg6 0x76
467
#define DW_OP_breg7 0x77
468
#define DW_OP_breg8 0x78
469
#define DW_OP_breg9 0x79
470
#define DW_OP_breg10 0x7a
471
#define DW_OP_breg11 0x7b
472
#define DW_OP_breg12 0x7c
473
#define DW_OP_breg13 0x7d
474
#define DW_OP_breg14 0x7e
475
#define DW_OP_breg15 0x7f
476
#define DW_OP_breg16 0x80
477
#define DW_OP_breg17 0x81
478
#define DW_OP_breg18 0x82
479
#define DW_OP_breg19 0x83
480
#define DW_OP_breg20 0x84
481
#define DW_OP_breg21 0x85
482
#define DW_OP_breg22 0x86
483
#define DW_OP_breg23 0x87
484
#define DW_OP_breg24 0x88
485
#define DW_OP_breg25 0x89
486
#define DW_OP_breg26 0x8a
487
#define DW_OP_breg27 0x8b
488
#define DW_OP_breg28 0x8c
489
#define DW_OP_breg29 0x8d
490
#define DW_OP_breg30 0x8e
491
#define DW_OP_breg31 0x8f
492
#define DW_OP_regx 0x90
493
#define DW_OP_fbreg 0x91
494
#define DW_OP_bregx 0x92
495
#define DW_OP_piece 0x93
496
#define DW_OP_deref_size 0x94
497
#define DW_OP_xderef_size 0x95
498
#define DW_OP_nop 0x96
499
#define DW_OP_push_object_address 0x97
500
#define DW_OP_call2 0x98
501
#define DW_OP_call4 0x99
502
#define DW_OP_call_ref 0x9a
503
#define DW_OP_form_tls_address 0x9b
504
#define DW_OP_call_frame_cfa 0x9c
505
#define DW_OP_bit_piece 0x9d
506
#define DW_OP_implicit_value 0x9e
507
#define DW_OP_stack_value 0x9f
508
#define DW_OP_implicit_pointer 0xa0
509
#define DW_OP_addrx 0xa1
510
#define DW_OP_constx 0xa2
511
#define DW_OP_entry_value 0xa3
512
#define DW_OP_const_type 0xa4
513
#define DW_OP_regval_type 0xa5
514
#define DW_OP_deref_type 0xa6
515
#define DW_OP_xderef_type 0xa7
516
#define DW_OP_convert 0xa8
517
#define DW_OP_reinterpret 0xa9
518
#define DW_OP_lo_user 0xe0
519
#define DW_OP_hi_user 0xff
520
521
/* GNU extensions. */
522
#define DW_OP_GNU_push_tls_address 0xe0
523
#define DW_OP_GNU_uninit 0xf0
524
#define DW_OP_GNU_encoded_addr 0xf1
525
#define DW_OP_GNU_implicit_pointer 0xf2
526
#define DW_OP_GNU_entry_value 0xf3
527
#define DW_OP_GNU_const_type 0xf4
528
#define DW_OP_GNU_regval_type 0xf5
529
#define DW_OP_GNU_deref_type 0xf6
530
#define DW_OP_GNU_convert 0xf7
531
#define DW_OP_GNU_reinterpret 0xf9
532
#define DW_OP_GNU_parameter_ref 0xfa
533
#define DW_OP_GNU_addr_index 0xfb
534
#define DW_OP_GNU_const_index 0xfc
535
536
#define DW_ATE_address 0x1
537
#define DW_ATE_boolean 0x2
538
#define DW_ATE_complex_float 0x3
539
#define DW_ATE_float 0x4
540
#define DW_ATE_signed 0x5
541
#define DW_ATE_signed_char 0x6
542
#define DW_ATE_unsigned 0x7
543
#define DW_ATE_unsigned_char 0x8
544
#define DW_ATE_imaginary_float 0x9
545
#define DW_ATE_packed_decimal 0xa
546
#define DW_ATE_numeric_string 0xb
547
#define DW_ATE_edited 0xc
548
#define DW_ATE_signed_fixed 0xd
549
#define DW_ATE_unsigned_fixed 0xe
550
#define DW_ATE_decimal_float 0xf
551
#define DW_ATE_UTF 0x10
552
#define DW_ATE_UCS 0x11
553
#define DW_ATE_ASCII 0x12
554
#define DW_ATE_lo_user 0x80
555
#define DW_ATE_hi_user 0xff
556
557
#define DW_ACCESS_public 0x01
558
#define DW_ACCESS_protected 0x02
559
#define DW_ACCESS_private 0x03
560
561
#define DW_END_default 0x00
562
#define DW_END_big 0x01
563
#define DW_END_little 0x02
564
#define DW_END_lo_user 0x40
565
#define DW_END_high_user 0xff
566
567
#define DW_VIS_local 0x01
568
#define DW_VIS_exported 0x02
569
#define DW_VIS_qualified 0x03
570
571
#define DW_VIRTUALITY_none 0x00
572
#define DW_VIRTUALITY_virtual 0x01
573
#define DW_VIRTUALITY_pure_virtual 0x02
574
575
#define DW_LANG_C89 0x0001
576
#define DW_LANG_C 0x0002
577
#define DW_LANG_Ada83 0x0003
578
#define DW_LANG_C_plus_plus 0x0004
579
#define DW_LANG_Cobol74 0x0005
580
#define DW_LANG_Cobol85 0x0006
581
#define DW_LANG_Fortran77 0x0007
582
#define DW_LANG_Fortran90 0x0008
583
#define DW_LANG_Pascal83 0x0009
584
#define DW_LANG_Modula2 0x000a
585
#define DW_LANG_Java 0x000b
586
#define DW_LANG_C99 0x000c
587
#define DW_LANG_Ada95 0x000d
588
#define DW_LANG_Fortran95 0x000e
589
#define DW_LANG_PLI 0x000f
590
#define DW_LANG_ObjC 0x0010
591
#define DW_LANG_ObjC_plus_plus 0x0011
592
#define DW_LANG_UPC 0x0012
593
#define DW_LANG_D 0x0013
594
#define DW_LANG_Python 0x0014
595
#define DW_LANG_OpenCL 0x0015
596
#define DW_LANG_Go 0x0016
597
#define DW_LANG_Modula3 0x0017
598
#define DW_LANG_Haskell 0x0018
599
#define DW_LANG_C_plus_plus_03 0x0019
600
#define DW_LANG_C_plus_plus_11 0x001a
601
#define DW_LANG_OCaml 0x001b
602
#define DW_LANG_Rust 0x001c
603
#define DW_LANG_C11 0x001d
604
#define DW_LANG_Swift 0x001e
605
#define DW_LANG_Julia 0x001f
606
#define DW_LANG_Dylan 0x0020
607
#define DW_LANG_C_plus_plus_14 0x0021
608
#define DW_LANG_Fortran03 0x0022
609
#define DW_LANG_Fortran08 0x0023
610
#define DW_LANG_RenderScript 0x0024
611
#define DW_LANG_BLISS 0x0025
612
#define DW_LANG_lo_user 0x8000
613
#define DW_LANG_Mips_Assembler 0x8001
614
#define DW_LANG_hi_user 0xffff
615
616
#define DW_ID_case_sensitive 0x00
617
#define DW_ID_up_case 0x01
618
#define DW_ID_down_case 0x02
619
#define DW_ID_case_insensitive 0x03
620
621
#define DW_CC_normal 0x01
622
#define DW_CC_program 0x02
623
#define DW_CC_nocall 0x03
624
#define DW_CC_pass_by_reference 0x04
625
#define DW_CC_pass_by_value 0x05
626
#define DW_CC_lo_user 0x40
627
#define DW_CC_hi_user 0xff
628
629
#define DW_INL_not_inlined 0x00
630
#define DW_INL_inlined 0x01
631
#define DW_INL_declared_not_inlined 0x02
632
#define DW_INL_declared_inlined 0x03
633
634
#define DW_ORD_row_major 0x00
635
#define DW_ORD_col_major 0x01
636
637
#define DW_DS_unsigned 0x01
638
#define DW_DS_leading_overpunch 0x02
639
#define DW_DS_trailing_overpunch 0x03
640
#define DW_DS_leading_separate 0x04
641
#define DW_DS_trailing_separate 0x05
642
643
#define DW_DSC_label 0x00
644
#define DW_DSC_range 0x01
645
646
#define DW_LNS_copy 0x01
647
#define DW_LNS_advance_pc 0x02
648
#define DW_LNS_advance_line 0x03
649
#define DW_LNS_set_file 0x04
650
#define DW_LNS_set_column 0x05
651
#define DW_LNS_negate_stmt 0x06
652
#define DW_LNS_set_basic_block 0x07
653
#define DW_LNS_const_add_pc 0x08
654
#define DW_LNS_fixed_advance_pc 0x09
655
#define DW_LNS_set_prologue_end 0x0a
656
#define DW_LNS_set_epilogue_begin 0x0b
657
#define DW_LNS_set_isa 0x0c
658
659
#define DW_LNE_end_sequence 0x01
660
#define DW_LNE_set_address 0x02
661
#define DW_LNE_define_file 0x03
662
#define DW_LNE_lo_user 0x80
663
#define DW_LNE_hi_user 0xff
664
665
#define DW_MACINFO_define 0x01
666
#define DW_MACINFO_undef 0x02
667
#define DW_MACINFO_start_file 0x03
668
#define DW_MACINFO_end_file 0x04
669
#define DW_MACINFO_vendor_ext 0xff
670
671
#define DW_CFA_advance_loc 0x40
672
#define DW_CFA_offset 0x80
673
#define DW_CFA_restore 0xc0
674
#define DW_CFA_extended 0
675
676
#define DW_CFA_nop 0x00
677
#define DW_CFA_set_loc 0x01
678
#define DW_CFA_advance_loc1 0x02
679
#define DW_CFA_advance_loc2 0x03
680
#define DW_CFA_advance_loc4 0x04
681
#define DW_CFA_offset_extended 0x05
682
#define DW_CFA_restore_extended 0x06
683
#define DW_CFA_undefined 0x07
684
#define DW_CFA_same_value 0x08
685
#define DW_CFA_register 0x09
686
#define DW_CFA_remember_state 0x0a
687
#define DW_CFA_restore_state 0x0b
688
#define DW_CFA_def_cfa 0x0c
689
#define DW_CFA_def_cfa_register 0x0d
690
#define DW_CFA_def_cfa_offset 0x0e
691
#define DW_CFA_def_cfa_expression 0x0f
692
#define DW_CFA_expression 0x10
693
#define DW_CFA_offset_extended_sf 0x11
694
#define DW_CFA_def_cfa_sf 0x12
695
#define DW_CFA_def_cfa_offset_sf 0x13
696
#define DW_CFA_val_offset 0x14
697
#define DW_CFA_val_offset_sf 0x15
698
#define DW_CFA_val_expression 0x16
699
#define DW_CFA_lo_user 0x1c
700
#define DW_CFA_high_user 0x3f
701
702
/*
703
* LSB(Linux Standard Base) extension to DWARF2.
704
*/
705
706
#define DW_EH_PE_absptr 0x00
707
#define DW_EH_PE_uleb128 0x01
708
#define DW_EH_PE_udata2 0x02
709
#define DW_EH_PE_udata4 0x03
710
#define DW_EH_PE_udata8 0x04
711
#define DW_EH_PE_sleb128 0x09
712
#define DW_EH_PE_sdata2 0x0a
713
#define DW_EH_PE_sdata4 0x0b
714
#define DW_EH_PE_sdata8 0x0c
715
#define DW_EH_PE_pcrel 0x10
716
#define DW_EH_PE_textrel 0x20
717
#define DW_EH_PE_datarel 0x30
718
#define DW_EH_PE_funcrel 0x40
719
#define DW_EH_PE_aligned 0x50
720
#define DW_EH_PE_omit 0xff
721
722
/*
723
* Compilation unit types. DWARF5 only.
724
*/
725
726
#define DW_UT_compile 0x01
727
#define DW_UT_type 0x02
728
#define DW_UT_partial 0x03
729
#define DW_UT_skeleton 0x04
730
#define DW_UT_split_compile 0x05
731
#define DW_UT_split_type 0x06
732
#define DW_UT_lo_user 0x80
733
#define DW_UT_hi_user 0xff
734
735
#endif /* !_DWARF_H_ */
736
737