Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'agent/tcf/services/dwarf.h')
-rw-r--r--agent/tcf/services/dwarf.h574
1 files changed, 574 insertions, 0 deletions
diff --git a/agent/tcf/services/dwarf.h b/agent/tcf/services/dwarf.h
new file mode 100644
index 00000000..0b6873c4
--- /dev/null
+++ b/agent/tcf/services/dwarf.h
@@ -0,0 +1,574 @@
+/*******************************************************************************
+ * Copyright (c) 1996, 2010 Wind River Systems, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v1.0 which accompany this distribution.
+ * The Eclipse Public License is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ * You may elect to redistribute this code under either of these licenses.
+ *
+ * Contributors:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+
+/*
+ * DWARF Debugging Information Format.
+ */
+
+#define TAG_padding 0x0000
+#define TAG_array_type 0x0001
+#define TAG_class_type 0x0002
+#define TAG_entry_point 0x0003
+#define TAG_enumeration_type 0x0004
+#define TAG_formal_parameter 0x0005
+#define TAG_global_subroutine 0x0006
+#define TAG_global_variable 0x0007
+#define TAG_imported_declaration 0x0008
+#define TAG_label 0x000a
+#define TAG_lexical_block 0x000b
+#define TAG_local_variable 0x000c
+#define TAG_member 0x000d
+#define TAG_pointer_type 0x000f
+#define TAG_reference_type 0x0010
+#define TAG_compile_unit 0x0011
+#define TAG_source_file 0x0011
+#define TAG_string_type 0x0012
+#define TAG_structure_type 0x0013
+#define TAG_subroutine 0x0014
+#define TAG_subroutine_type 0x0015
+#define TAG_typedef 0x0016
+#define TAG_union_type 0x0017
+#define TAG_unspecified_parameters 0x0018
+#define TAG_variant 0x0019
+#define TAG_common_block 0x001a
+#define TAG_common_inclusion 0x001b
+#define TAG_inheritance 0x001c
+#define TAG_inlined_subroutine 0x001d
+#define TAG_module 0x001e
+#define TAG_ptr_to_member_type 0x001f
+#define TAG_set_type 0x0020
+#define TAG_subrange_type 0x0021
+#define TAG_with_stmt 0x0022
+#define TAG_access_declaration 0x0023
+#define TAG_base_type 0x0024
+#define TAG_catch_block 0x0025
+#define TAG_const_type 0x0026
+#define TAG_constant 0x0027
+#define TAG_enumerator 0x0028
+#define TAG_file_type 0x0029
+#define TAG_friend 0x002a
+#define TAG_namelist 0x002b
+#define TAG_namelist_item 0x002c
+#define TAG_packed_type 0x002d
+#define TAG_subprogram 0x002e
+#define TAG_template_type_param 0x002f
+#define TAG_template_value_param 0x0030
+#define TAG_thrown_type 0x0031
+#define TAG_try_block 0x0032
+#define TAG_variant_part 0x0033
+#define TAG_variable 0x0034
+#define TAG_volatile_type 0x0035
+#define TAG_dwarf_procedure 0x0036
+#define TAG_restrict_type 0x0037
+#define TAG_interface_type 0x0038
+#define TAG_namespace 0x0039
+#define TAG_imported_module 0x003a
+#define TAG_unspecified_type 0x003b
+#define TAG_partial_unit 0x003c
+#define TAG_imported_unit 0x003d
+#define TAG_mutable_type 0x003e
+#define TAG_condition 0x003f
+#define TAG_shared_type 0x0040
+#define TAG_lo_user 0x4080
+#define TAG_wrs_thrown_object 0x4080
+#define TAG_wrs_throw_breakpoint 0x4081
+#define TAG_wrs_catch_breakpoint 0x4082
+#define TAG_wrs_extern_subroutine 0x4083
+#define TAG_hi_user 0xffff
+
+#define CHILDREN_no 0x00
+#define CHILDREN_yes 0x01
+
+#define FORM_ADDR 0x0001
+#define FORM_REF 0x0002
+#define FORM_BLOCK2 0x0003
+#define FORM_BLOCK4 0x0004
+#define FORM_DATA2 0x0005
+#define FORM_DATA4 0x0006
+#define FORM_DATA8 0x0007
+#define FORM_STRING 0x0008
+#define FORM_BLOCK 0x0009
+#define FORM_BLOCK1 0x000a
+#define FORM_DATA1 0x000b
+#define FORM_FLAG 0x000c
+#define FORM_SDATA 0x000d
+#define FORM_STRP 0x000e
+#define FORM_UDATA 0x000f
+#define FORM_REF_ADDR 0x0010
+#define FORM_REF1 0x0011
+#define FORM_REF2 0x0012
+#define FORM_REF4 0x0013
+#define FORM_REF8 0x0014
+#define FORM_REF_UDATA 0x0015
+#define FORM_INDIRECT 0x0016
+
+#define AT_sibling 0x0001
+#define AT_location 0x0002
+#define AT_name 0x0003
+#define AT_fund_type 0x0005
+#define AT_mod_fund_type 0x0006
+#define AT_user_def_type 0x0007
+#define AT_mod_u_d_type 0x0008
+#define AT_ordering 0x0009
+#define AT_subscr_data 0x000a
+#define AT_byte_size 0x000b
+#define AT_bit_offset 0x000c
+#define AT_bit_size 0x000d
+#define AT_element_list 0x000f
+#define AT_stmt_list 0x0010
+#define AT_low_pc 0x0011
+#define AT_high_pc 0x0012
+#define AT_language 0x0013
+#define AT_member 0x0014
+#define AT_discr 0x0015
+#define AT_discr_value 0x0016
+#define AT_visibility 0x0017
+#define AT_import 0x0018
+#define AT_string_length 0x0019
+#define AT_common_reference 0x001a
+#define AT_comp_dir 0x001b
+#define AT_const_value 0x001c
+#define AT_constaining_type 0x001d
+#define AT_default_value 0x001e
+#define AT_friends 0x001f
+#define AT_inline 0x0020
+#define AT_is_optional 0x0021
+#define AT_lower_bound 0x0022
+#define AT_program 0x0023
+#define AT_private 0x0024
+#define AT_producer 0x0025
+#define AT_protected 0x0026
+#define AT_prototyped 0x0027
+#define AT_public 0x0028
+#define AT_pure_virtual 0x0029
+#define AT_return_addr 0x002a
+#define AT_specification_v1 0x002b
+#define AT_start_scope 0x002c
+#define AT_stride_size 0x002e
+#define AT_upper_bound 0x002f
+#define AT_virtual 0x0030
+#define AT_abstract_origin 0x0031
+#define AT_accessibility 0x0032
+#define AT_address_class 0x0033
+#define AT_artificial 0x0034
+#define AT_base_types 0x0035
+#define AT_calling_convention 0x0036
+#define AT_count 0x0037
+#define AT_data_member_location 0x0038
+#define AT_decl_column 0x0039
+#define AT_decl_file 0x003a
+#define AT_decl_line 0x003b
+#define AT_declaration 0x003c
+#define AT_distr_list 0x003d
+#define AT_encoding 0x003e
+#define AT_external 0x003f
+#define AT_frame_base 0x0040
+#define AT_friend 0x0041
+#define AT_identifier_case 0x0042
+#define AT_macro_info 0x0043
+#define AT_namelist_info 0x0044 /* typo? item */
+#define AT_priority 0x0045
+#define AT_segment 0x0046
+#define AT_specification_v2 0x0047 /* v2 */
+#define AT_static_link 0x0048
+#define AT_type 0x0049
+#define AT_use_location 0x004a
+#define AT_variable_parameter 0x004b
+#define AT_virtuality 0x004c
+#define AT_vtable_elem_location 0x004d
+#define AT_allocated 0x004e /* v3 */
+#define AT_associated 0x004f /* v3 */
+#define AT_mangled 0x0050 /* v1 */
+#define AT_data_location 0x0050 /* v2 */
+#define AT_stride 0x0051 /* v3 */
+#define AT_entry_pc 0x0052 /* v3 */
+#define AT_use_UTF8 0x0053 /* v3 */
+#define AT_extension 0x0054 /* v3 */
+#define AT_ranges 0x0055 /* v3 */
+#define AT_trampoline 0x0056 /* v3 */
+#define AT_call_column 0x0057 /* v3 */
+#define AT_call_file 0x0058 /* v3 */
+#define AT_call_line 0x0059 /* v3 */
+#define AT_description 0x005a /* v3 */
+#define AT_endianity 0x0065 /* v3 */
+#define AT_lo_user_v1 0x0200
+#define AT_hi_user_v1 0x03ff
+#define AT_push_mask 0x0220
+#define AT_frame_size 0x0221
+#define AT_main_unit 0x0222
+#define AT_stack_use 0x0223
+#define AT_source_file_names 0x0800
+#define AT_source_info 0x0810
+#define AT_lo_user_v2 0x2000
+#define AT_wrs_options 0x2001
+#define AT_MIPS_linkage_name 0x2007
+#define AT_hi_user_v2 0x3fff
+
+
+#define OP_reg 0x01 /* v1 */
+#define OP_basereg 0x02 /* v1 */
+#define OP_addr 0x03
+#define OP_const 0x04 /* v1 */
+#define OP_deref2 0x05 /* v1 */
+#define OP_deref 0x06
+#define OP_add 0x07 /* v1 */
+#define OP_const1u 0x08
+#define OP_const1s 0x09
+#define OP_const2u 0x0a
+#define OP_const2s 0x0b
+#define OP_const4u 0x0c
+#define OP_const4s 0x0d
+#define OP_const8u 0x0e
+#define OP_const8s 0x0f
+#define OP_constu 0x10
+#define OP_consts 0x11
+#define OP_dup 0x12
+#define OP_drop 0x13
+#define OP_over 0x14
+#define OP_pick 0x15
+#define OP_swap 0x16
+#define OP_rot 0x17
+#define OP_xderef 0x18
+#define OP_abs 0x19
+#define OP_and 0x1a
+#define OP_div 0x1b
+#define OP_minus 0x1c
+#define OP_mod 0x1d
+#define OP_mul 0x1e
+#define OP_neg 0x1f
+#define OP_not 0x20
+#define OP_or 0x21
+#define OP_plus 0x22
+#define OP_plus_uconst 0x23
+#define OP_shl 0x24
+#define OP_shr 0x25
+#define OP_shra 0x26
+#define OP_xor 0x27
+#define OP_bra 0x28
+#define OP_eq 0x29
+#define OP_ge 0x2a
+#define OP_gt 0x2b
+#define OP_le 0x2c
+#define OP_lt 0x2d
+#define OP_ne 0x2e
+#define OP_skip 0x2f
+#define OP_lit0 0x30
+#define OP_lit1 0x31
+#define OP_lit2 0x32
+#define OP_lit3 0x33
+#define OP_lit4 0x34
+#define OP_lit5 0x35
+#define OP_lit6 0x36
+#define OP_lit7 0x37
+#define OP_lit8 0x38
+#define OP_lit9 0x39
+#define OP_lit10 0x3a
+#define OP_lit11 0x3b
+#define OP_lit12 0x3c
+#define OP_lit13 0x3d
+#define OP_lit14 0x3e
+#define OP_lit15 0x3f
+#define OP_lit16 0x40
+#define OP_lit17 0x41
+#define OP_lit18 0x42
+#define OP_lit19 0x43
+#define OP_lit20 0x44
+#define OP_lit21 0x45
+#define OP_lit22 0x46
+#define OP_lit23 0x47
+#define OP_lit24 0x48
+#define OP_lit25 0x49
+#define OP_lit26 0x4a
+#define OP_lit27 0x4b
+#define OP_lit28 0x4c
+#define OP_lit29 0x4d
+#define OP_lit30 0x4e
+#define OP_lit31 0x4f
+#define OP_reg0 0x50
+#define OP_reg1 0x51
+#define OP_reg2 0x52
+#define OP_reg3 0x53
+#define OP_reg4 0x54
+#define OP_reg5 0x55
+#define OP_reg6 0x56
+#define OP_reg7 0x57
+#define OP_reg8 0x58
+#define OP_reg9 0x59
+#define OP_reg10 0x5a
+#define OP_reg11 0x5b
+#define OP_reg12 0x5c
+#define OP_reg13 0x5d
+#define OP_reg14 0x5e
+#define OP_reg15 0x5f
+#define OP_reg16 0x60
+#define OP_reg17 0x61
+#define OP_reg18 0x62
+#define OP_reg19 0x63
+#define OP_reg20 0x64
+#define OP_reg21 0x65
+#define OP_reg22 0x66
+#define OP_reg23 0x67
+#define OP_reg24 0x68
+#define OP_reg25 0x69
+#define OP_reg26 0x6a
+#define OP_reg27 0x6b
+#define OP_reg28 0x6c
+#define OP_reg29 0x6d
+#define OP_reg30 0x6e
+#define OP_reg31 0x6f
+#define OP_breg0 0x70
+#define OP_breg1 0x71
+#define OP_breg2 0x72
+#define OP_breg3 0x73
+#define OP_breg4 0x74
+#define OP_breg5 0x75
+#define OP_breg6 0x76
+#define OP_breg7 0x77
+#define OP_breg8 0x78
+#define OP_breg9 0x79
+#define OP_breg10 0x7a
+#define OP_breg11 0x7b
+#define OP_breg12 0x7c
+#define OP_breg13 0x7d
+#define OP_breg14 0x7e
+#define OP_breg15 0x7f
+#define OP_breg16 0x80
+#define OP_breg17 0x81
+#define OP_breg18 0x82
+#define OP_breg19 0x83
+#define OP_breg20 0x84
+#define OP_breg21 0x85
+#define OP_breg22 0x86
+#define OP_breg23 0x87
+#define OP_breg24 0x88
+#define OP_breg25 0x89
+#define OP_breg26 0x8a
+#define OP_breg27 0x8b
+#define OP_breg28 0x8c
+#define OP_breg29 0x8d
+#define OP_breg30 0x8e
+#define OP_breg31 0x8f
+#define OP_regx 0x90
+#define OP_fbreg 0x91
+#define OP_bregx 0x92
+#define OP_piece 0x93
+#define OP_deref_size 0x94
+#define OP_xderef_size 0x95
+#define OP_nop 0x96
+#define OP_push_object_address 0x97
+#define OP_call2 0x98
+#define OP_call4 0x99
+#define OP_calli 0x9a /* typo? */
+#define OP_ref 0x9a
+#define OP_call_ref 0x9a
+#define OP_call_frame_cfa 0x9c
+#define OP_bit_piece 0x9d
+#define OP_lo_user 0xe0
+#define OP_hi_user 0xff
+
+#define FT_char 0x0001
+#define FT_signed_char 0x0002
+#define FT_unsigned_char 0x0003
+#define FT_short 0x0004
+#define FT_signed_short 0x0005
+#define FT_unsigned_short 0x0006
+#define FT_integer 0x0007
+#define FT_signed_integer 0x0008
+#define FT_unsigned_integer 0x0009
+#define FT_long 0x000a
+#define FT_signed_long 0x000b
+#define FT_unsigned_long 0x000c
+#define FT_pointer 0x000d
+#define FT_float 0x000e
+#define FT_dbl_prec_float 0x000f
+#define FT_ext_prec_float 0x0010
+#define FT_complex 0x0011
+#define FT_dbl_prec_complex 0x0012
+#define FT_void 0x0014
+#define FT_boolean 0x0015
+#define FT_ext_prec_complex 0x0016
+#define FT_label 0x0017
+#define FT_lo_user 0x8000
+#define FT_hi_user 0xffff
+#define FT_longlong 0x8008
+#define FT_signed_longlong 0x8108
+#define FT_unsigned_longlong 0x8208
+#define FT_vector_signed_char 0xa002
+#define FT_vector_unsigned_char 0xa003
+#define FT_vector_signed_short 0xa005
+#define FT_vector_unsigned_short 0xa006
+#define FT_vector_signed_int 0xa008
+#define FT_vector_unsigned_int 0xa009
+#define FT_vector_float 0xa00e
+#define FT_ev64_s16 0xb005
+#define FT_ev64_u16 0xb006
+#define FT_ev64_s32 0xb008
+#define FT_ev64_u32 0xb009
+#define FT_ev64_s64 0xb208
+#define FT_ev64_u64 0xb209
+#define FT_ev64_fs 0xb00e
+#define FT_ev64_opaque 0xb020
+
+#define MOD_pointer_to 0x01
+#define MOD_reference_to 0x02
+#define MOD_const 0x03
+#define MOD_volatile 0x04
+#define MOD_lo_user 0x80
+#define MOD_hi_user 0xff
+
+#define LANG_C89 0x00000001
+#define LANG_C 0x00000002
+#define LANG_ADA83 0x00000003
+#define LANG_C_PLUS_PLUS 0x00000004
+#define LANG_COBOL74 0x00000005
+#define LANG_COBOL85 0x00000006
+#define LANG_FORTRAN77 0x00000007
+#define LANG_FORTRAN90 0x00000008
+#define LANG_PASCAL83 0x00000009
+#define LANG_MODULA2 0x0000000a
+#define LANG_JAVA 0x0000000b /* v3 */
+#define LANG_C99 0x0000000c /* v3 */
+#define LANG_ADA95 0x0000000d /* v3 */
+#define LANG_FORTRAN95 0x0000000e /* v3 */
+#define LANG_PLI 0x0000000f
+#define LANG_lo_user 0x00008000
+#define LANG_hi_user 0x0000ffff
+
+#define ORD_row_major 0
+#define ORD_col_major 1
+
+#define FMT_FT_C_C 0x0
+#define FMT_FT_C_X 0x1
+#define FMT_FT_X_C 0x2
+#define FMT_FT_X_X 0x3
+#define FMT_UT_C_C 0x4
+#define FMT_UT_C_X 0x5
+#define FMT_UT_X_C 0x6
+#define FMT_UT_X_X 0x7
+#define FMT_ET 0x8
+
+#define ATE_address 0x01
+#define ATE_boolean 0x02
+#define ATE_complex_float 0x03
+#define ATE_float 0x04
+#define ATE_signed 0x05
+#define ATE_signed_char 0x06
+#define ATE_unsigned 0x07
+#define ATE_unsigned_char 0x08
+#define ATE_imaginary_float 0x09 /* v3 */
+#define ATE_lo_user 0x80
+#define ATE_hi_user 0xff
+
+#define DW_LNS_copy 1
+#define DW_LNS_advance_pc 2
+#define DW_LNS_advance_line 3
+#define DW_LNS_set_file 4
+#define DW_LNS_set_column 5
+#define DW_LNS_negate_stmt 6
+#define DW_LNS_set_basic_block 7
+#define DW_LNS_const_add_pc 8
+#define DW_LNS_fixed_advance_pc 9
+#define DW_LNS_set_prologue_end 0xa /* v3 */
+#define DW_LNS_set_epilogue_begin 0xb /* v3 */
+#define DW_LNS_set_isa 0xc /* v3 */
+#define DW_LNS_expected_opcode_base 0xd /* highest standard opcode plus one */
+#define DW_LNS_vendor_extension 0x100
+#define DW_LNS_special_opcode 0x101
+
+#define DW_LNE_end_sequence 1
+#define DW_LNE_set_address 2
+#define DW_LNE_define_file 3
+#define DW_LNE_lo_user 0x80 /* v3 */
+#define DW_LNE_hi_user 0xff /* v3 */
+
+#define ACCESS_public 1
+#define ACCESS_protected 2
+#define ACCESS_private 3
+
+#define VIS_local 1
+#define VIS_exported 2
+#define VIS_qualified 3
+
+#define VIRTUALITY_none 0
+#define VIRTUALITY_virtual 1
+#define VIRTUALITY_pure_virtual 2
+
+#define ID_case_sensitive 0
+#define ID_up_case 1
+#define ID_down_case 2
+#define ID_case_insensitive 3
+
+#define CC_normal 0x01
+#define CC_program 0x02
+#define CC_nocall 0x03
+#define CC_lo_user 0x40
+#define CC_hi_user 0xff
+
+#define INL_not_inlined 0
+#define INL_inlined 1
+#define INL_declared_not_inlined 2
+#define INL_declared_inlined 3
+
+#define DSC_label 0
+#define DSC_range 1
+
+#define MACINFO_define 1
+#define MACINFO_undef 2
+#define MACINFO_start_file 3
+#define MACINFO_end_file 4
+#define MACINFO_vendor_ext 0xff
+
+/* The following three defines represent */
+/* the high 2 bits only. */
+#define CFA_advance_loc 0x01
+#define CFA_offset 0x02
+#define CFA_restore 0x03
+
+#define CFA_nop 0x00
+#define CFA_set_loc 0x01
+#define CFA_advance_loc1 0x02
+#define CFA_advance_loc2 0x03
+#define CFA_advance_loc4 0x04
+#define CFA_offset_extended 0x05
+#define CFA_restore_extended 0x06
+#define CFA_undefined 0x07
+#define CFA_same_value 0x08
+#define CFA_register 0x09
+#define CFA_remember_state 0x0a
+#define CFA_restore_state 0x0b
+#define CFA_def_cfa 0x0c
+#define CFA_def_cfa_register 0x0d
+#define CFA_def_cfa_offset 0x0e
+#define CFA_def_cfa_expression 0x0f
+#define CFA_expression 0x10 /* v3 */
+#define CFA_offset_extended_sf 0x11 /* v3 */
+#define CFA_def_cfa_sf 0x12 /* v3 */
+#define CFA_def_cfa_offset_sf 0x13 /* v3 */
+#define CFA_lo_user 0x1c
+#define CFA_hi_user 0x3f
+
+
+#define ADDR_none 0
+#define ADDR_near16 1
+#define ADDR_far16 2
+#define ADDR_huge16 3
+#define ADDR_near32 4
+#define ADDR_far32 5
+
+#define DW_END_default 0x00
+#define DW_END_big 0x01
+#define DW_END_little 0x02
+#define DW_END_lo_user 0x40
+#define DW_END_hi_user 0xff

Back to the top