File indexing completed on 2026-03-31 08:34:18
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 #ifndef _DWARF_H
0031 #define _DWARF_H 1
0032
0033
0034 enum
0035 {
0036 DW_UT_compile = 0x01,
0037 DW_UT_type = 0x02,
0038 DW_UT_partial = 0x03,
0039 DW_UT_skeleton = 0x04,
0040 DW_UT_split_compile = 0x05,
0041 DW_UT_split_type = 0x06,
0042
0043 DW_UT_lo_user = 0x80,
0044 DW_UT_hi_user = 0xff
0045 };
0046
0047
0048 enum
0049 {
0050 DW_TAG_array_type = 0x01,
0051 DW_TAG_class_type = 0x02,
0052 DW_TAG_entry_point = 0x03,
0053 DW_TAG_enumeration_type = 0x04,
0054 DW_TAG_formal_parameter = 0x05,
0055
0056
0057 DW_TAG_imported_declaration = 0x08,
0058
0059 DW_TAG_label = 0x0a,
0060 DW_TAG_lexical_block = 0x0b,
0061
0062 DW_TAG_member = 0x0d,
0063
0064 DW_TAG_pointer_type = 0x0f,
0065 DW_TAG_reference_type = 0x10,
0066 DW_TAG_compile_unit = 0x11,
0067 DW_TAG_string_type = 0x12,
0068 DW_TAG_structure_type = 0x13,
0069
0070 DW_TAG_subroutine_type = 0x15,
0071 DW_TAG_typedef = 0x16,
0072 DW_TAG_union_type = 0x17,
0073 DW_TAG_unspecified_parameters = 0x18,
0074 DW_TAG_variant = 0x19,
0075 DW_TAG_common_block = 0x1a,
0076 DW_TAG_common_inclusion = 0x1b,
0077 DW_TAG_inheritance = 0x1c,
0078 DW_TAG_inlined_subroutine = 0x1d,
0079 DW_TAG_module = 0x1e,
0080 DW_TAG_ptr_to_member_type = 0x1f,
0081 DW_TAG_set_type = 0x20,
0082 DW_TAG_subrange_type = 0x21,
0083 DW_TAG_with_stmt = 0x22,
0084 DW_TAG_access_declaration = 0x23,
0085 DW_TAG_base_type = 0x24,
0086 DW_TAG_catch_block = 0x25,
0087 DW_TAG_const_type = 0x26,
0088 DW_TAG_constant = 0x27,
0089 DW_TAG_enumerator = 0x28,
0090 DW_TAG_file_type = 0x29,
0091 DW_TAG_friend = 0x2a,
0092 DW_TAG_namelist = 0x2b,
0093 DW_TAG_namelist_item = 0x2c,
0094 DW_TAG_packed_type = 0x2d,
0095 DW_TAG_subprogram = 0x2e,
0096 DW_TAG_template_type_parameter = 0x2f,
0097 DW_TAG_template_value_parameter = 0x30,
0098 DW_TAG_thrown_type = 0x31,
0099 DW_TAG_try_block = 0x32,
0100 DW_TAG_variant_part = 0x33,
0101 DW_TAG_variable = 0x34,
0102 DW_TAG_volatile_type = 0x35,
0103 DW_TAG_dwarf_procedure = 0x36,
0104 DW_TAG_restrict_type = 0x37,
0105 DW_TAG_interface_type = 0x38,
0106 DW_TAG_namespace = 0x39,
0107 DW_TAG_imported_module = 0x3a,
0108 DW_TAG_unspecified_type = 0x3b,
0109 DW_TAG_partial_unit = 0x3c,
0110 DW_TAG_imported_unit = 0x3d,
0111
0112 DW_TAG_condition = 0x3f,
0113 DW_TAG_shared_type = 0x40,
0114 DW_TAG_type_unit = 0x41,
0115 DW_TAG_rvalue_reference_type = 0x42,
0116 DW_TAG_template_alias = 0x43,
0117 DW_TAG_coarray_type = 0x44,
0118 DW_TAG_generic_subrange = 0x45,
0119 DW_TAG_dynamic_type = 0x46,
0120 DW_TAG_atomic_type = 0x47,
0121 DW_TAG_call_site = 0x48,
0122 DW_TAG_call_site_parameter = 0x49,
0123 DW_TAG_skeleton_unit = 0x4a,
0124 DW_TAG_immutable_type = 0x4b,
0125
0126 DW_TAG_lo_user = 0x4080,
0127
0128 DW_TAG_MIPS_loop = 0x4081,
0129 DW_TAG_format_label = 0x4101,
0130 DW_TAG_function_template = 0x4102,
0131 DW_TAG_class_template = 0x4103,
0132
0133 DW_TAG_GNU_BINCL = 0x4104,
0134 DW_TAG_GNU_EINCL = 0x4105,
0135
0136 DW_TAG_GNU_template_template_param = 0x4106,
0137 DW_TAG_GNU_template_parameter_pack = 0x4107,
0138 DW_TAG_GNU_formal_parameter_pack = 0x4108,
0139 DW_TAG_GNU_call_site = 0x4109,
0140 DW_TAG_GNU_call_site_parameter = 0x410a,
0141
0142 DW_TAG_hi_user = 0xffff
0143 };
0144
0145
0146
0147 enum
0148 {
0149 DW_CHILDREN_no = 0,
0150 DW_CHILDREN_yes = 1
0151 };
0152
0153
0154
0155 enum
0156 {
0157 DW_AT_sibling = 0x01,
0158 DW_AT_location = 0x02,
0159 DW_AT_name = 0x03,
0160
0161
0162
0163
0164
0165 DW_AT_ordering = 0x09,
0166
0167 DW_AT_byte_size = 0x0b,
0168 DW_AT_bit_offset = 0x0c,
0169 DW_AT_bit_size = 0x0d,
0170
0171
0172 DW_AT_stmt_list = 0x10,
0173 DW_AT_low_pc = 0x11,
0174 DW_AT_high_pc = 0x12,
0175 DW_AT_language = 0x13,
0176
0177 DW_AT_discr = 0x15,
0178 DW_AT_discr_value = 0x16,
0179 DW_AT_visibility = 0x17,
0180 DW_AT_import = 0x18,
0181 DW_AT_string_length = 0x19,
0182 DW_AT_common_reference = 0x1a,
0183 DW_AT_comp_dir = 0x1b,
0184 DW_AT_const_value = 0x1c,
0185 DW_AT_containing_type = 0x1d,
0186 DW_AT_default_value = 0x1e,
0187
0188 DW_AT_inline = 0x20,
0189 DW_AT_is_optional = 0x21,
0190 DW_AT_lower_bound = 0x22,
0191
0192
0193 DW_AT_producer = 0x25,
0194
0195 DW_AT_prototyped = 0x27,
0196
0197
0198 DW_AT_return_addr = 0x2a,
0199
0200 DW_AT_start_scope = 0x2c,
0201
0202 DW_AT_bit_stride = 0x2e,
0203 DW_AT_upper_bound = 0x2f,
0204
0205 DW_AT_abstract_origin = 0x31,
0206 DW_AT_accessibility = 0x32,
0207 DW_AT_address_class = 0x33,
0208 DW_AT_artificial = 0x34,
0209 DW_AT_base_types = 0x35,
0210 DW_AT_calling_convention = 0x36,
0211 DW_AT_count = 0x37,
0212 DW_AT_data_member_location = 0x38,
0213 DW_AT_decl_column = 0x39,
0214 DW_AT_decl_file = 0x3a,
0215 DW_AT_decl_line = 0x3b,
0216 DW_AT_declaration = 0x3c,
0217 DW_AT_discr_list = 0x3d,
0218 DW_AT_encoding = 0x3e,
0219 DW_AT_external = 0x3f,
0220 DW_AT_frame_base = 0x40,
0221 DW_AT_friend = 0x41,
0222 DW_AT_identifier_case = 0x42,
0223 DW_AT_macro_info = 0x43,
0224 DW_AT_namelist_item = 0x44,
0225 DW_AT_priority = 0x45,
0226 DW_AT_segment = 0x46,
0227 DW_AT_specification = 0x47,
0228 DW_AT_static_link = 0x48,
0229 DW_AT_type = 0x49,
0230 DW_AT_use_location = 0x4a,
0231 DW_AT_variable_parameter = 0x4b,
0232 DW_AT_virtuality = 0x4c,
0233 DW_AT_vtable_elem_location = 0x4d,
0234 DW_AT_allocated = 0x4e,
0235 DW_AT_associated = 0x4f,
0236 DW_AT_data_location = 0x50,
0237 DW_AT_byte_stride = 0x51,
0238 DW_AT_entry_pc = 0x52,
0239 DW_AT_use_UTF8 = 0x53,
0240 DW_AT_extension = 0x54,
0241 DW_AT_ranges = 0x55,
0242 DW_AT_trampoline = 0x56,
0243 DW_AT_call_column = 0x57,
0244 DW_AT_call_file = 0x58,
0245 DW_AT_call_line = 0x59,
0246 DW_AT_description = 0x5a,
0247 DW_AT_binary_scale = 0x5b,
0248 DW_AT_decimal_scale = 0x5c,
0249 DW_AT_small = 0x5d,
0250 DW_AT_decimal_sign = 0x5e,
0251 DW_AT_digit_count = 0x5f,
0252 DW_AT_picture_string = 0x60,
0253 DW_AT_mutable = 0x61,
0254 DW_AT_threads_scaled = 0x62,
0255 DW_AT_explicit = 0x63,
0256 DW_AT_object_pointer = 0x64,
0257 DW_AT_endianity = 0x65,
0258 DW_AT_elemental = 0x66,
0259 DW_AT_pure = 0x67,
0260 DW_AT_recursive = 0x68,
0261 DW_AT_signature = 0x69,
0262 DW_AT_main_subprogram = 0x6a,
0263 DW_AT_data_bit_offset = 0x6b,
0264 DW_AT_const_expr = 0x6c,
0265 DW_AT_enum_class = 0x6d,
0266 DW_AT_linkage_name = 0x6e,
0267 DW_AT_string_length_bit_size = 0x6f,
0268 DW_AT_string_length_byte_size = 0x70,
0269 DW_AT_rank = 0x71,
0270 DW_AT_str_offsets_base = 0x72,
0271 DW_AT_addr_base = 0x73,
0272 DW_AT_rnglists_base = 0x74,
0273
0274 DW_AT_dwo_name = 0x76,
0275 DW_AT_reference = 0x77,
0276 DW_AT_rvalue_reference = 0x78,
0277 DW_AT_macros = 0x79,
0278 DW_AT_call_all_calls = 0x7a,
0279 DW_AT_call_all_source_calls = 0x7b,
0280 DW_AT_call_all_tail_calls = 0x7c,
0281 DW_AT_call_return_pc = 0x7d,
0282 DW_AT_call_value = 0x7e,
0283 DW_AT_call_origin = 0x7f,
0284 DW_AT_call_parameter = 0x80,
0285 DW_AT_call_pc = 0x81,
0286 DW_AT_call_tail_call = 0x82,
0287 DW_AT_call_target = 0x83,
0288 DW_AT_call_target_clobbered = 0x84,
0289 DW_AT_call_data_location = 0x85,
0290 DW_AT_call_data_value = 0x86,
0291 DW_AT_noreturn = 0x87,
0292 DW_AT_alignment = 0x88,
0293 DW_AT_export_symbols = 0x89,
0294 DW_AT_deleted = 0x8a,
0295 DW_AT_defaulted = 0x8b,
0296 DW_AT_loclists_base = 0x8c,
0297
0298
0299 DW_AT_language_name = 0x90,
0300 DW_AT_language_version = 0x91,
0301
0302 DW_AT_lo_user = 0x2000,
0303
0304 DW_AT_MIPS_fde = 0x2001,
0305 DW_AT_MIPS_loop_begin = 0x2002,
0306 DW_AT_MIPS_tail_loop_begin = 0x2003,
0307 DW_AT_MIPS_epilog_begin = 0x2004,
0308 DW_AT_MIPS_loop_unroll_factor = 0x2005,
0309 DW_AT_MIPS_software_pipeline_depth = 0x2006,
0310 DW_AT_MIPS_linkage_name = 0x2007,
0311 DW_AT_MIPS_stride = 0x2008,
0312 DW_AT_MIPS_abstract_name = 0x2009,
0313 DW_AT_MIPS_clone_origin = 0x200a,
0314 DW_AT_MIPS_has_inlines = 0x200b,
0315 DW_AT_MIPS_stride_byte = 0x200c,
0316 DW_AT_MIPS_stride_elem = 0x200d,
0317 DW_AT_MIPS_ptr_dopetype = 0x200e,
0318 DW_AT_MIPS_allocatable_dopetype = 0x200f,
0319 DW_AT_MIPS_assumed_shape_dopetype = 0x2010,
0320 DW_AT_MIPS_assumed_size = 0x2011,
0321
0322
0323 DW_AT_sf_names = 0x2101,
0324 DW_AT_src_info = 0x2102,
0325 DW_AT_mac_info = 0x2103,
0326 DW_AT_src_coords = 0x2104,
0327 DW_AT_body_begin = 0x2105,
0328 DW_AT_body_end = 0x2106,
0329 DW_AT_GNU_vector = 0x2107,
0330 DW_AT_GNU_guarded_by = 0x2108,
0331 DW_AT_GNU_pt_guarded_by = 0x2109,
0332 DW_AT_GNU_guarded = 0x210a,
0333 DW_AT_GNU_pt_guarded = 0x210b,
0334 DW_AT_GNU_locks_excluded = 0x210c,
0335 DW_AT_GNU_exclusive_locks_required = 0x210d,
0336 DW_AT_GNU_shared_locks_required = 0x210e,
0337 DW_AT_GNU_odr_signature = 0x210f,
0338 DW_AT_GNU_template_name = 0x2110,
0339 DW_AT_GNU_call_site_value = 0x2111,
0340 DW_AT_GNU_call_site_data_value = 0x2112,
0341 DW_AT_GNU_call_site_target = 0x2113,
0342 DW_AT_GNU_call_site_target_clobbered = 0x2114,
0343 DW_AT_GNU_tail_call = 0x2115,
0344 DW_AT_GNU_all_tail_call_sites = 0x2116,
0345 DW_AT_GNU_all_call_sites = 0x2117,
0346 DW_AT_GNU_all_source_call_sites = 0x2118,
0347 DW_AT_GNU_locviews = 0x2137,
0348 DW_AT_GNU_entry_view = 0x2138,
0349 DW_AT_GNU_macros = 0x2119,
0350 DW_AT_GNU_deleted = 0x211a,
0351
0352 DW_AT_GNU_dwo_name = 0x2130,
0353 DW_AT_GNU_dwo_id = 0x2131,
0354 DW_AT_GNU_ranges_base = 0x2132,
0355 DW_AT_GNU_addr_base = 0x2133,
0356 DW_AT_GNU_pubnames = 0x2134,
0357 DW_AT_GNU_pubtypes = 0x2135,
0358
0359
0360 DW_AT_GNU_numerator = 0x2303,
0361 DW_AT_GNU_denominator = 0x2304,
0362
0363 DW_AT_GNU_bias = 0x2305,
0364
0365 DW_AT_hi_user = 0x3fff
0366 };
0367
0368
0369
0370
0371
0372 #define DW_AT_subscr_data 0x0a
0373
0374 #define DW_AT_element_list 0x0f
0375
0376 #define DW_AT_member 0x14
0377
0378
0379 enum
0380 {
0381 DW_FORM_addr = 0x01,
0382 DW_FORM_block2 = 0x03,
0383 DW_FORM_block4 = 0x04,
0384 DW_FORM_data2 = 0x05,
0385 DW_FORM_data4 = 0x06,
0386 DW_FORM_data8 = 0x07,
0387 DW_FORM_string = 0x08,
0388 DW_FORM_block = 0x09,
0389 DW_FORM_block1 = 0x0a,
0390 DW_FORM_data1 = 0x0b,
0391 DW_FORM_flag = 0x0c,
0392 DW_FORM_sdata = 0x0d,
0393 DW_FORM_strp = 0x0e,
0394 DW_FORM_udata = 0x0f,
0395 DW_FORM_ref_addr = 0x10,
0396 DW_FORM_ref1 = 0x11,
0397 DW_FORM_ref2 = 0x12,
0398 DW_FORM_ref4 = 0x13,
0399 DW_FORM_ref8 = 0x14,
0400 DW_FORM_ref_udata = 0x15,
0401 DW_FORM_indirect = 0x16,
0402 DW_FORM_sec_offset = 0x17,
0403 DW_FORM_exprloc = 0x18,
0404 DW_FORM_flag_present = 0x19,
0405 DW_FORM_strx = 0x1a,
0406 DW_FORM_addrx = 0x1b,
0407 DW_FORM_ref_sup4 = 0x1c,
0408 DW_FORM_strp_sup = 0x1d,
0409 DW_FORM_data16 = 0x1e,
0410 DW_FORM_line_strp = 0x1f,
0411 DW_FORM_ref_sig8 = 0x20,
0412 DW_FORM_implicit_const = 0x21,
0413 DW_FORM_loclistx = 0x22,
0414 DW_FORM_rnglistx = 0x23,
0415 DW_FORM_ref_sup8 = 0x24,
0416 DW_FORM_strx1 = 0x25,
0417 DW_FORM_strx2 = 0x26,
0418 DW_FORM_strx3 = 0x27,
0419 DW_FORM_strx4 = 0x28,
0420 DW_FORM_addrx1 = 0x29,
0421 DW_FORM_addrx2 = 0x2a,
0422 DW_FORM_addrx3 = 0x2b,
0423 DW_FORM_addrx4 = 0x2c,
0424
0425
0426 DW_FORM_GNU_addr_index = 0x1f01,
0427 DW_FORM_GNU_str_index = 0x1f02,
0428
0429 DW_FORM_GNU_ref_alt = 0x1f20,
0430 DW_FORM_GNU_strp_alt = 0x1f21
0431 };
0432
0433
0434
0435 enum
0436 {
0437 DW_OP_addr = 0x03,
0438 DW_OP_deref = 0x06,
0439 DW_OP_const1u = 0x08,
0440 DW_OP_const1s = 0x09,
0441 DW_OP_const2u = 0x0a,
0442 DW_OP_const2s = 0x0b,
0443 DW_OP_const4u = 0x0c,
0444 DW_OP_const4s = 0x0d,
0445 DW_OP_const8u = 0x0e,
0446 DW_OP_const8s = 0x0f,
0447 DW_OP_constu = 0x10,
0448 DW_OP_consts = 0x11,
0449 DW_OP_dup = 0x12,
0450 DW_OP_drop = 0x13,
0451 DW_OP_over = 0x14,
0452 DW_OP_pick = 0x15,
0453 DW_OP_swap = 0x16,
0454 DW_OP_rot = 0x17,
0455 DW_OP_xderef = 0x18,
0456 DW_OP_abs = 0x19,
0457 DW_OP_and = 0x1a,
0458 DW_OP_div = 0x1b,
0459 DW_OP_minus = 0x1c,
0460 DW_OP_mod = 0x1d,
0461 DW_OP_mul = 0x1e,
0462 DW_OP_neg = 0x1f,
0463 DW_OP_not = 0x20,
0464 DW_OP_or = 0x21,
0465 DW_OP_plus = 0x22,
0466 DW_OP_plus_uconst = 0x23,
0467 DW_OP_shl = 0x24,
0468 DW_OP_shr = 0x25,
0469 DW_OP_shra = 0x26,
0470 DW_OP_xor = 0x27,
0471 DW_OP_bra = 0x28,
0472 DW_OP_eq = 0x29,
0473 DW_OP_ge = 0x2a,
0474 DW_OP_gt = 0x2b,
0475 DW_OP_le = 0x2c,
0476 DW_OP_lt = 0x2d,
0477 DW_OP_ne = 0x2e,
0478 DW_OP_skip = 0x2f,
0479 DW_OP_lit0 = 0x30,
0480 DW_OP_lit1 = 0x31,
0481 DW_OP_lit2 = 0x32,
0482 DW_OP_lit3 = 0x33,
0483 DW_OP_lit4 = 0x34,
0484 DW_OP_lit5 = 0x35,
0485 DW_OP_lit6 = 0x36,
0486 DW_OP_lit7 = 0x37,
0487 DW_OP_lit8 = 0x38,
0488 DW_OP_lit9 = 0x39,
0489 DW_OP_lit10 = 0x3a,
0490 DW_OP_lit11 = 0x3b,
0491 DW_OP_lit12 = 0x3c,
0492 DW_OP_lit13 = 0x3d,
0493 DW_OP_lit14 = 0x3e,
0494 DW_OP_lit15 = 0x3f,
0495 DW_OP_lit16 = 0x40,
0496 DW_OP_lit17 = 0x41,
0497 DW_OP_lit18 = 0x42,
0498 DW_OP_lit19 = 0x43,
0499 DW_OP_lit20 = 0x44,
0500 DW_OP_lit21 = 0x45,
0501 DW_OP_lit22 = 0x46,
0502 DW_OP_lit23 = 0x47,
0503 DW_OP_lit24 = 0x48,
0504 DW_OP_lit25 = 0x49,
0505 DW_OP_lit26 = 0x4a,
0506 DW_OP_lit27 = 0x4b,
0507 DW_OP_lit28 = 0x4c,
0508 DW_OP_lit29 = 0x4d,
0509 DW_OP_lit30 = 0x4e,
0510 DW_OP_lit31 = 0x4f,
0511 DW_OP_reg0 = 0x50,
0512 DW_OP_reg1 = 0x51,
0513 DW_OP_reg2 = 0x52,
0514 DW_OP_reg3 = 0x53,
0515 DW_OP_reg4 = 0x54,
0516 DW_OP_reg5 = 0x55,
0517 DW_OP_reg6 = 0x56,
0518 DW_OP_reg7 = 0x57,
0519 DW_OP_reg8 = 0x58,
0520 DW_OP_reg9 = 0x59,
0521 DW_OP_reg10 = 0x5a,
0522 DW_OP_reg11 = 0x5b,
0523 DW_OP_reg12 = 0x5c,
0524 DW_OP_reg13 = 0x5d,
0525 DW_OP_reg14 = 0x5e,
0526 DW_OP_reg15 = 0x5f,
0527 DW_OP_reg16 = 0x60,
0528 DW_OP_reg17 = 0x61,
0529 DW_OP_reg18 = 0x62,
0530 DW_OP_reg19 = 0x63,
0531 DW_OP_reg20 = 0x64,
0532 DW_OP_reg21 = 0x65,
0533 DW_OP_reg22 = 0x66,
0534 DW_OP_reg23 = 0x67,
0535 DW_OP_reg24 = 0x68,
0536 DW_OP_reg25 = 0x69,
0537 DW_OP_reg26 = 0x6a,
0538 DW_OP_reg27 = 0x6b,
0539 DW_OP_reg28 = 0x6c,
0540 DW_OP_reg29 = 0x6d,
0541 DW_OP_reg30 = 0x6e,
0542 DW_OP_reg31 = 0x6f,
0543 DW_OP_breg0 = 0x70,
0544 DW_OP_breg1 = 0x71,
0545 DW_OP_breg2 = 0x72,
0546 DW_OP_breg3 = 0x73,
0547 DW_OP_breg4 = 0x74,
0548 DW_OP_breg5 = 0x75,
0549 DW_OP_breg6 = 0x76,
0550 DW_OP_breg7 = 0x77,
0551 DW_OP_breg8 = 0x78,
0552 DW_OP_breg9 = 0x79,
0553 DW_OP_breg10 = 0x7a,
0554 DW_OP_breg11 = 0x7b,
0555 DW_OP_breg12 = 0x7c,
0556 DW_OP_breg13 = 0x7d,
0557 DW_OP_breg14 = 0x7e,
0558 DW_OP_breg15 = 0x7f,
0559 DW_OP_breg16 = 0x80,
0560 DW_OP_breg17 = 0x81,
0561 DW_OP_breg18 = 0x82,
0562 DW_OP_breg19 = 0x83,
0563 DW_OP_breg20 = 0x84,
0564 DW_OP_breg21 = 0x85,
0565 DW_OP_breg22 = 0x86,
0566 DW_OP_breg23 = 0x87,
0567 DW_OP_breg24 = 0x88,
0568 DW_OP_breg25 = 0x89,
0569 DW_OP_breg26 = 0x8a,
0570 DW_OP_breg27 = 0x8b,
0571 DW_OP_breg28 = 0x8c,
0572 DW_OP_breg29 = 0x8d,
0573 DW_OP_breg30 = 0x8e,
0574 DW_OP_breg31 = 0x8f,
0575 DW_OP_regx = 0x90,
0576 DW_OP_fbreg = 0x91,
0577 DW_OP_bregx = 0x92,
0578 DW_OP_piece = 0x93,
0579 DW_OP_deref_size = 0x94,
0580 DW_OP_xderef_size = 0x95,
0581 DW_OP_nop = 0x96,
0582 DW_OP_push_object_address = 0x97,
0583 DW_OP_call2 = 0x98,
0584 DW_OP_call4 = 0x99,
0585 DW_OP_call_ref = 0x9a,
0586 DW_OP_form_tls_address = 0x9b,
0587 DW_OP_call_frame_cfa = 0x9c,
0588 DW_OP_bit_piece = 0x9d,
0589 DW_OP_implicit_value = 0x9e,
0590 DW_OP_stack_value = 0x9f,
0591
0592 DW_OP_implicit_pointer = 0xa0,
0593 DW_OP_addrx = 0xa1,
0594 DW_OP_constx = 0xa2,
0595 DW_OP_entry_value = 0xa3,
0596 DW_OP_const_type = 0xa4,
0597 DW_OP_regval_type = 0xa5,
0598 DW_OP_deref_type = 0xa6,
0599 DW_OP_xderef_type = 0xa7,
0600 DW_OP_convert = 0xa8,
0601 DW_OP_reinterpret = 0xa9,
0602
0603
0604 DW_OP_GNU_push_tls_address = 0xe0,
0605 DW_OP_GNU_uninit = 0xf0,
0606 DW_OP_GNU_encoded_addr = 0xf1,
0607 DW_OP_GNU_implicit_pointer = 0xf2,
0608 DW_OP_GNU_entry_value = 0xf3,
0609 DW_OP_GNU_const_type = 0xf4,
0610 DW_OP_GNU_regval_type = 0xf5,
0611 DW_OP_GNU_deref_type = 0xf6,
0612 DW_OP_GNU_convert = 0xf7,
0613 DW_OP_GNU_reinterpret = 0xf9,
0614 DW_OP_GNU_parameter_ref = 0xfa,
0615
0616
0617 DW_OP_GNU_addr_index = 0xfb,
0618 DW_OP_GNU_const_index = 0xfc,
0619
0620 DW_OP_GNU_variable_value = 0xfd,
0621
0622 DW_OP_lo_user = 0xe0,
0623 DW_OP_hi_user = 0xff
0624 };
0625
0626
0627
0628 enum
0629 {
0630 DW_ATE_void = 0x0,
0631 DW_ATE_address = 0x1,
0632 DW_ATE_boolean = 0x2,
0633 DW_ATE_complex_float = 0x3,
0634 DW_ATE_float = 0x4,
0635 DW_ATE_signed = 0x5,
0636 DW_ATE_signed_char = 0x6,
0637 DW_ATE_unsigned = 0x7,
0638 DW_ATE_unsigned_char = 0x8,
0639 DW_ATE_imaginary_float = 0x9,
0640 DW_ATE_packed_decimal = 0xa,
0641 DW_ATE_numeric_string = 0xb,
0642 DW_ATE_edited = 0xc,
0643 DW_ATE_signed_fixed = 0xd,
0644 DW_ATE_unsigned_fixed = 0xe,
0645 DW_ATE_decimal_float = 0xf,
0646 DW_ATE_UTF = 0x10,
0647 DW_ATE_UCS = 0x11,
0648 DW_ATE_ASCII = 0x12,
0649
0650 DW_ATE_lo_user = 0x80,
0651 DW_ATE_hi_user = 0xff
0652 };
0653
0654
0655
0656 enum
0657 {
0658 DW_DS_unsigned = 1,
0659 DW_DS_leading_overpunch = 2,
0660 DW_DS_trailing_overpunch = 3,
0661 DW_DS_leading_separate = 4,
0662 DW_DS_trailing_separate = 5,
0663 };
0664
0665
0666
0667 enum
0668 {
0669 DW_END_default = 0,
0670 DW_END_big = 1,
0671 DW_END_little = 2,
0672
0673 DW_END_lo_user = 0x40,
0674 DW_END_hi_user = 0xff
0675 };
0676
0677
0678
0679 enum
0680 {
0681 DW_ACCESS_public = 1,
0682 DW_ACCESS_protected = 2,
0683 DW_ACCESS_private = 3
0684 };
0685
0686
0687
0688 enum
0689 {
0690 DW_VIS_local = 1,
0691 DW_VIS_exported = 2,
0692 DW_VIS_qualified = 3
0693 };
0694
0695
0696
0697 enum
0698 {
0699 DW_VIRTUALITY_none = 0,
0700 DW_VIRTUALITY_virtual = 1,
0701 DW_VIRTUALITY_pure_virtual = 2
0702 };
0703
0704
0705
0706
0707
0708
0709
0710 enum
0711 {
0712 DW_LANG_C89 = 0x0001,
0713 DW_LANG_C = 0x0002,
0714 DW_LANG_Ada83 = 0x0003,
0715 DW_LANG_C_plus_plus = 0x0004,
0716 DW_LANG_Cobol74 = 0x0005,
0717 DW_LANG_Cobol85 = 0x0006,
0718 DW_LANG_Fortran77 = 0x0007,
0719 DW_LANG_Fortran90 = 0x0008,
0720 DW_LANG_Pascal83 = 0x0009,
0721 DW_LANG_Modula2 = 0x000a,
0722 DW_LANG_Java = 0x000b,
0723 DW_LANG_C99 = 0x000c,
0724 DW_LANG_Ada95 = 0x000d,
0725 DW_LANG_Fortran95 = 0x000e,
0726 DW_LANG_PLI = 0x000f,
0727 DW_LANG_ObjC = 0x0010,
0728 DW_LANG_ObjC_plus_plus = 0x0011,
0729 DW_LANG_UPC = 0x0012,
0730 DW_LANG_D = 0x0013,
0731 DW_LANG_Python = 0x0014,
0732 DW_LANG_OpenCL = 0x0015,
0733 DW_LANG_Go = 0x0016,
0734 DW_LANG_Modula3 = 0x0017,
0735 DW_LANG_Haskell = 0x0018,
0736 DW_LANG_C_plus_plus_03 = 0x0019,
0737 DW_LANG_C_plus_plus_11 = 0x001a,
0738 DW_LANG_OCaml = 0x001b,
0739 DW_LANG_Rust = 0x001c,
0740 DW_LANG_C11 = 0x001d,
0741 DW_LANG_Swift = 0x001e,
0742 DW_LANG_Julia = 0x001f,
0743 DW_LANG_Dylan = 0x0020,
0744 DW_LANG_C_plus_plus_14 = 0x0021,
0745 DW_LANG_Fortran03 = 0x0022,
0746 DW_LANG_Fortran08 = 0x0023,
0747 DW_LANG_RenderScript = 0x0024,
0748 DW_LANG_BLISS = 0x0025,
0749
0750 DW_LANG_Kotlin = 0x0026,
0751 DW_LANG_Zig = 0x0027,
0752 DW_LANG_Crystal = 0x0028,
0753 DW_LANG_C_plus_plus_17 = 0x002a,
0754 DW_LANG_C_plus_plus_20 = 0x002b,
0755 DW_LANG_C17 = 0x002c,
0756 DW_LANG_Fortran18 = 0x002d,
0757 DW_LANG_Ada2005 = 0x002e,
0758 DW_LANG_Ada2012 = 0x002f,
0759 DW_LANG_HIP = 0x0030,
0760 DW_LANG_Assembly = 0x0031,
0761 DW_LANG_C_sharp = 0x0032,
0762 DW_LANG_Mojo = 0x0033,
0763 DW_LANG_GLSL = 0x0034,
0764 DW_LANG_GLSL_ES = 0x0035,
0765 DW_LANG_HLSL = 0x0036,
0766 DW_LANG_OpenCL_CPP = 0x0037,
0767 DW_LANG_CPP_for_OpenCL = 0x0038,
0768 DW_LANG_SYCL = 0x0039,
0769 DW_LANG_C_plus_plus_23 = 0x003a,
0770 DW_LANG_Odin = 0x003b,
0771 DW_LANG_P4 = 0x003c,
0772 DW_LANG_Metal = 0x003d,
0773 DW_LANG_C23 = 0x003e,
0774 DW_LANG_Fortran23 = 0x003f,
0775 DW_LANG_Ruby = 0x0040,
0776 DW_LANG_Move = 0x0041,
0777 DW_LANG_Hylo = 0x0042,
0778 DW_LANG_V = 0x0043,
0779 DW_LANG_Algol68 = 0x0044,
0780 DW_LANG_Nim = 0x0045,
0781
0782 DW_LANG_lo_user = 0x8000,
0783 DW_LANG_Mips_Assembler = 0x8001,
0784 DW_LANG_hi_user = 0xffff
0785 };
0786
0787
0788 #define DW_LANG_PL1 DW_LANG_PLI
0789
0790
0791 enum
0792 {
0793 DW_LNAME_Ada = 0x0001,
0794 DW_LNAME_BLISS = 0x0002,
0795 DW_LNAME_C = 0x0003,
0796 DW_LNAME_C_plus_plus = 0x0004,
0797 DW_LNAME_Cobol = 0x0005,
0798 DW_LNAME_Crystal = 0x0006,
0799 DW_LNAME_D = 0x0007,
0800 DW_LNAME_Dylan = 0x0008,
0801 DW_LNAME_Fortran = 0x0009,
0802 DW_LNAME_Go = 0x000a,
0803 DW_LNAME_Haskell = 0x000b,
0804 DW_LNAME_Java = 0x000c,
0805 DW_LNAME_Julia = 0x000d,
0806 DW_LNAME_Kotlin = 0x000e,
0807 DW_LNAME_Modula2 = 0x000f,
0808 DW_LNAME_Modula3 = 0x0010,
0809 DW_LNAME_ObjC = 0x0011,
0810 DW_LNAME_ObjC_plus_plus = 0x0012,
0811 DW_LNAME_OCaml = 0x0013,
0812 DW_LNAME_OpenCL_C = 0x0014,
0813 DW_LNAME_Pascal = 0x0015,
0814 DW_LNAME_PLI = 0x0016,
0815 DW_LNAME_Python = 0x0017,
0816 DW_LNAME_RenderScript = 0x0018,
0817 DW_LNAME_Rust = 0x0019,
0818 DW_LNAME_Swift = 0x001a,
0819 DW_LNAME_UPC = 0x001b,
0820 DW_LNAME_Zig = 0x001c,
0821 DW_LNAME_Assembly = 0x001d,
0822 DW_LNAME_C_sharp = 0x001e,
0823 DW_LNAME_Mojo = 0x001f,
0824 DW_LNAME_GLSL = 0x0020,
0825 DW_LNAME_GLSL_ES = 0x0021,
0826 DW_LNAME_HLSL = 0x0022,
0827 DW_LNAME_OpenCL_CPP = 0x0023,
0828 DW_LNAME_CPP_for_OpenCL = 0x0024,
0829 DW_LNAME_SYCL = 0x0025,
0830 DW_LNAME_Ruby = 0x0026,
0831 DW_LNAME_Move = 0x0027,
0832 DW_LNAME_Hylo = 0x0028,
0833 DW_LNAME_HIP = 0x0029,
0834 DW_LNAME_Odin = 0x002a,
0835 DW_LNAME_P4 = 0x002b,
0836 DW_LNAME_Metal = 0x002c,
0837 DW_LNAME_V = 0x002d,
0838 DW_LNAME_Algol68 = 0x002e,
0839 DW_LNAME_Nim = 0x002f,
0840
0841 DW_LNAME_lo_user = 0x8000,
0842 DW_LNAME_hi_user = 0xffff
0843 };
0844
0845
0846 enum
0847 {
0848 DW_ID_case_sensitive = 0,
0849 DW_ID_up_case = 1,
0850 DW_ID_down_case = 2,
0851 DW_ID_case_insensitive = 3
0852 };
0853
0854
0855
0856
0857
0858
0859 enum
0860 {
0861 DW_CC_normal = 0x1,
0862 DW_CC_program = 0x2,
0863 DW_CC_nocall = 0x3,
0864 DW_CC_pass_by_reference = 0x4,
0865 DW_CC_pass_by_value = 0x5,
0866 DW_CC_lo_user = 0x40,
0867 DW_CC_hi_user = 0xff
0868 };
0869
0870
0871
0872 enum
0873 {
0874 DW_INL_not_inlined = 0,
0875 DW_INL_inlined = 1,
0876 DW_INL_declared_not_inlined = 2,
0877 DW_INL_declared_inlined = 3
0878 };
0879
0880
0881
0882 enum
0883 {
0884 DW_ORD_row_major = 0,
0885 DW_ORD_col_major = 1
0886 };
0887
0888
0889
0890 enum
0891 {
0892 DW_DSC_label = 0,
0893 DW_DSC_range = 1
0894 };
0895
0896
0897 enum
0898 {
0899 DW_DEFAULTED_no = 0,
0900 DW_DEFAULTED_in_class = 1,
0901 DW_DEFAULTED_out_of_class = 2
0902 };
0903
0904
0905 enum
0906 {
0907 DW_LNCT_path = 0x1,
0908 DW_LNCT_directory_index = 0x2,
0909 DW_LNCT_timestamp = 0x3,
0910 DW_LNCT_size = 0x4,
0911 DW_LNCT_MD5 = 0x5,
0912 DW_LNCT_lo_user = 0x2000,
0913 DW_LNCT_hi_user = 0x3fff
0914 };
0915
0916
0917 enum
0918 {
0919 DW_LNS_copy = 1,
0920 DW_LNS_advance_pc = 2,
0921 DW_LNS_advance_line = 3,
0922 DW_LNS_set_file = 4,
0923 DW_LNS_set_column = 5,
0924 DW_LNS_negate_stmt = 6,
0925 DW_LNS_set_basic_block = 7,
0926 DW_LNS_const_add_pc = 8,
0927 DW_LNS_fixed_advance_pc = 9,
0928 DW_LNS_set_prologue_end = 10,
0929 DW_LNS_set_epilogue_begin = 11,
0930 DW_LNS_set_isa = 12
0931 };
0932
0933
0934
0935 enum
0936 {
0937 DW_LNE_end_sequence = 1,
0938 DW_LNE_set_address = 2,
0939 DW_LNE_define_file = 3,
0940 DW_LNE_set_discriminator = 4,
0941
0942 DW_LNE_lo_user = 128,
0943
0944 DW_LNE_NVIDIA_inlined_call = 144,
0945 DW_LNE_NVIDIA_set_function_name = 145,
0946
0947 DW_LNE_hi_user = 255
0948 };
0949
0950
0951
0952 enum
0953 {
0954 DW_MACINFO_define = 1,
0955 DW_MACINFO_undef = 2,
0956 DW_MACINFO_start_file = 3,
0957 DW_MACINFO_end_file = 4,
0958 DW_MACINFO_vendor_ext = 255
0959 };
0960
0961
0962
0963 enum
0964 {
0965 DW_MACRO_define = 0x01,
0966 DW_MACRO_undef = 0x02,
0967 DW_MACRO_start_file = 0x03,
0968 DW_MACRO_end_file = 0x04,
0969 DW_MACRO_define_strp = 0x05,
0970 DW_MACRO_undef_strp = 0x06,
0971 DW_MACRO_import = 0x07,
0972 DW_MACRO_define_sup = 0x08,
0973 DW_MACRO_undef_sup = 0x09,
0974 DW_MACRO_import_sup = 0x0a,
0975 DW_MACRO_define_strx = 0x0b,
0976 DW_MACRO_undef_strx = 0x0c,
0977 DW_MACRO_lo_user = 0xe0,
0978 DW_MACRO_hi_user = 0xff
0979 };
0980
0981
0982
0983
0984 #define DW_MACRO_GNU_define DW_MACRO_define
0985 #define DW_MACRO_GNU_undef DW_MACRO_undef
0986 #define DW_MACRO_GNU_start_file DW_MACRO_start_file
0987 #define DW_MACRO_GNU_end_file DW_MACRO_end_file
0988 #define DW_MACRO_GNU_define_indirect DW_MACRO_define_strp
0989 #define DW_MACRO_GNU_undef_indirect DW_MACRO_undef_strp
0990 #define DW_MACRO_GNU_transparent_include DW_MACRO_import
0991 #define DW_MACRO_GNU_lo_user DW_MACRO_lo_user
0992 #define DW_MACRO_GNU_hi_user DW_MACRO_hi_user
0993
0994
0995
0996 enum
0997 {
0998 DW_RLE_end_of_list = 0x0,
0999 DW_RLE_base_addressx = 0x1,
1000 DW_RLE_startx_endx = 0x2,
1001 DW_RLE_startx_length = 0x3,
1002 DW_RLE_offset_pair = 0x4,
1003 DW_RLE_base_address = 0x5,
1004 DW_RLE_start_end = 0x6,
1005 DW_RLE_start_length = 0x7
1006 };
1007
1008
1009
1010 enum
1011 {
1012 DW_LLE_end_of_list = 0x0,
1013 DW_LLE_base_addressx = 0x1,
1014 DW_LLE_startx_endx = 0x2,
1015 DW_LLE_startx_length = 0x3,
1016 DW_LLE_offset_pair = 0x4,
1017 DW_LLE_default_location = 0x5,
1018 DW_LLE_base_address = 0x6,
1019 DW_LLE_start_end = 0x7,
1020 DW_LLE_start_length = 0x8
1021 };
1022
1023
1024
1025 enum
1026 {
1027 DW_LLE_GNU_end_of_list_entry = 0x0,
1028 DW_LLE_GNU_base_address_selection_entry = 0x1,
1029 DW_LLE_GNU_start_end_entry = 0x2,
1030 DW_LLE_GNU_start_length_entry = 0x3,
1031
1032
1033
1034 DW_LLE_GNU_view_pair = 0x9
1035 };
1036
1037
1038 enum
1039 {
1040 DW_SECT_INFO = 1,
1041 DW_SECT_TYPES = 2,
1042 DW_SECT_ABBREV = 3,
1043 DW_SECT_LINE = 4,
1044 DW_SECT_LOCLISTS = 5,
1045 DW_SECT_STR_OFFSETS = 6,
1046 DW_SECT_MACRO = 7,
1047 DW_SECT_RNGLISTS = 8,
1048 };
1049
1050
1051
1052 enum
1053 {
1054 DW_CFA_advance_loc = 0x40,
1055 DW_CFA_offset = 0x80,
1056 DW_CFA_restore = 0xc0,
1057 DW_CFA_extended = 0,
1058
1059 DW_CFA_nop = 0x00,
1060 DW_CFA_set_loc = 0x01,
1061 DW_CFA_advance_loc1 = 0x02,
1062 DW_CFA_advance_loc2 = 0x03,
1063 DW_CFA_advance_loc4 = 0x04,
1064 DW_CFA_offset_extended = 0x05,
1065 DW_CFA_restore_extended = 0x06,
1066 DW_CFA_undefined = 0x07,
1067 DW_CFA_same_value = 0x08,
1068 DW_CFA_register = 0x09,
1069 DW_CFA_remember_state = 0x0a,
1070 DW_CFA_restore_state = 0x0b,
1071 DW_CFA_def_cfa = 0x0c,
1072 DW_CFA_def_cfa_register = 0x0d,
1073 DW_CFA_def_cfa_offset = 0x0e,
1074 DW_CFA_def_cfa_expression = 0x0f,
1075 DW_CFA_expression = 0x10,
1076 DW_CFA_offset_extended_sf = 0x11,
1077 DW_CFA_def_cfa_sf = 0x12,
1078 DW_CFA_def_cfa_offset_sf = 0x13,
1079 DW_CFA_val_offset = 0x14,
1080 DW_CFA_val_offset_sf = 0x15,
1081 DW_CFA_val_expression = 0x16,
1082
1083 DW_CFA_low_user = 0x1c,
1084 DW_CFA_MIPS_advance_loc8 = 0x1d,
1085 DW_CFA_GNU_window_save = 0x2d,
1086 DW_CFA_AARCH64_negate_ra_state = 0x2d,
1087 DW_CFA_GNU_args_size = 0x2e,
1088 DW_CFA_GNU_negative_offset_extended = 0x2f,
1089 DW_CFA_high_user = 0x3f
1090 };
1091
1092
1093 enum
1094 {
1095 DW_CIE_ID_32 = 0xffffffffU,
1096 DW_CIE_ID_64 = 0xffffffffffffffffULL
1097 };
1098
1099
1100
1101 enum
1102 {
1103 DW_EH_PE_absptr = 0x00,
1104 DW_EH_PE_omit = 0xff,
1105
1106
1107 DW_EH_PE_uleb128 = 0x01,
1108 DW_EH_PE_udata2 = 0x02,
1109 DW_EH_PE_udata4 = 0x03,
1110 DW_EH_PE_udata8 = 0x04,
1111 DW_EH_PE_sleb128 = 0x09,
1112 DW_EH_PE_sdata2 = 0x0a,
1113 DW_EH_PE_sdata4 = 0x0b,
1114 DW_EH_PE_sdata8 = 0x0c,
1115 DW_EH_PE_signed = 0x08,
1116
1117
1118 DW_EH_PE_pcrel = 0x10,
1119 DW_EH_PE_textrel = 0x20,
1120 DW_EH_PE_datarel = 0x30,
1121 DW_EH_PE_funcrel = 0x40,
1122 DW_EH_PE_aligned = 0x50,
1123
1124 DW_EH_PE_indirect = 0x80
1125 };
1126
1127
1128
1129 #define DW_ADDR_none 0
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142 #define DWARF3_LENGTH_MIN_ESCAPE_CODE 0xfffffff0u
1143 #define DWARF3_LENGTH_MAX_ESCAPE_CODE 0xffffffffu
1144 #define DWARF3_LENGTH_64_BIT DWARF3_LENGTH_MAX_ESCAPE_CODE
1145
1146 #endif