kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

dwarf_defs.h (7138B)


      1 #ifndef KIT_DWARF_DEFS_H
      2 #define KIT_DWARF_DEFS_H
      3 
      4 /* Shared DWARF wire-format constants.
      5  *
      6  * This header is intentionally limited to numeric encodings from the DWARF
      7  * format. Producer and reader internals may both include it, but neither side
      8  * should expose or share implementation state through it.
      9  */
     10 
     11 /* DW_TAG */
     12 #define DW_TAG_array_type 0x01
     13 #define DW_TAG_class_type 0x02
     14 #define DW_TAG_enumeration_type 0x04
     15 #define DW_TAG_formal_parameter 0x05
     16 #define DW_TAG_lexical_block 0x0b
     17 #define DW_TAG_member 0x0d
     18 #define DW_TAG_pointer_type 0x0f
     19 #define DW_TAG_reference_type 0x10
     20 #define DW_TAG_compile_unit 0x11
     21 #define DW_TAG_structure_type 0x13
     22 #define DW_TAG_subroutine_type 0x15
     23 #define DW_TAG_typedef 0x16
     24 #define DW_TAG_union_type 0x17
     25 #define DW_TAG_unspecified_parameters 0x18
     26 #define DW_TAG_inheritance 0x1c
     27 #define DW_TAG_inlined_subroutine 0x1d
     28 #define DW_TAG_subrange_type 0x21
     29 #define DW_TAG_base_type 0x24
     30 #define DW_TAG_const_type 0x26
     31 #define DW_TAG_enumerator 0x28
     32 #define DW_TAG_subprogram 0x2e
     33 #define DW_TAG_variable 0x34
     34 #define DW_TAG_volatile_type 0x35
     35 #define DW_TAG_restrict_type 0x37
     36 
     37 /* DW_CHILDREN */
     38 #define DW_CHILDREN_no 0x00
     39 #define DW_CHILDREN_yes 0x01
     40 
     41 /* DW_AT */
     42 #define DW_AT_sibling 0x01
     43 #define DW_AT_location 0x02
     44 #define DW_AT_name 0x03
     45 #define DW_AT_byte_size 0x0b
     46 #define DW_AT_bit_offset 0x0c /* DWARF 3/4; DW5 uses data_bit_offset. */
     47 #define DW_AT_bit_size 0x0d
     48 #define DW_AT_stmt_list 0x10
     49 #define DW_AT_low_pc 0x11
     50 #define DW_AT_high_pc 0x12
     51 #define DW_AT_language 0x13
     52 #define DW_AT_comp_dir 0x1b
     53 #define DW_AT_const_value 0x1c
     54 #define DW_AT_producer 0x25
     55 #define DW_AT_prototyped 0x27
     56 #define DW_AT_start_scope 0x2c
     57 #define DW_AT_bit_stride 0x2e
     58 #define DW_AT_upper_bound 0x2f
     59 #define DW_AT_count 0x37
     60 #define DW_AT_data_member_location 0x38
     61 #define DW_AT_decl_file 0x3a
     62 #define DW_AT_decl_line 0x3b
     63 #define DW_AT_declaration 0x3c
     64 #define DW_AT_encoding 0x3e
     65 #define DW_AT_external 0x3f
     66 #define DW_AT_frame_base 0x40
     67 #define DW_AT_specification 0x47
     68 #define DW_AT_type 0x49
     69 #define DW_AT_ranges 0x55
     70 #define DW_AT_data_bit_offset 0x6b
     71 #define DW_AT_str_offsets_base 0x72
     72 #define DW_AT_addr_base 0x73
     73 #define DW_AT_rnglists_base 0x74
     74 #define DW_AT_loclists_base 0x8c
     75 
     76 /* DW_FORM */
     77 #define DW_FORM_addr 0x01
     78 #define DW_FORM_block2 0x03
     79 #define DW_FORM_block4 0x04
     80 #define DW_FORM_data2 0x05
     81 #define DW_FORM_data4 0x06
     82 #define DW_FORM_data8 0x07
     83 #define DW_FORM_string 0x08
     84 #define DW_FORM_block 0x09
     85 #define DW_FORM_block1 0x0a
     86 #define DW_FORM_data1 0x0b
     87 #define DW_FORM_flag 0x0c
     88 #define DW_FORM_sdata 0x0d
     89 #define DW_FORM_strp 0x0e
     90 #define DW_FORM_udata 0x0f
     91 #define DW_FORM_ref_addr 0x10
     92 #define DW_FORM_ref1 0x11
     93 #define DW_FORM_ref2 0x12
     94 #define DW_FORM_ref4 0x13
     95 #define DW_FORM_ref8 0x14
     96 #define DW_FORM_ref_udata 0x15
     97 #define DW_FORM_indirect 0x16
     98 #define DW_FORM_sec_offset 0x17
     99 #define DW_FORM_exprloc 0x18
    100 #define DW_FORM_flag_present 0x19
    101 #define DW_FORM_strx 0x1a
    102 #define DW_FORM_addrx 0x1b
    103 #define DW_FORM_ref_sup4 0x1c
    104 #define DW_FORM_strp_sup 0x1d
    105 #define DW_FORM_data16 0x1e
    106 #define DW_FORM_line_strp 0x1f
    107 #define DW_FORM_ref_sig8 0x20
    108 #define DW_FORM_implicit_const 0x21
    109 #define DW_FORM_loclistx 0x22
    110 #define DW_FORM_rnglistx 0x23
    111 #define DW_FORM_ref_sup8 0x24
    112 #define DW_FORM_strx1 0x26
    113 #define DW_FORM_strx2 0x27
    114 #define DW_FORM_strx3 0x28
    115 #define DW_FORM_strx4 0x29
    116 #define DW_FORM_addrx1 0x2a
    117 #define DW_FORM_addrx2 0x2b
    118 #define DW_FORM_addrx3 0x2c
    119 #define DW_FORM_addrx4 0x2d
    120 
    121 /* DW_LANG */
    122 #define DW_LANG_C 0x02
    123 #define DW_LANG_C89 0x01
    124 #define DW_LANG_C99 0x0c
    125 #define DW_LANG_C11 0x1d
    126 #define DW_LANG_C17 0x2c
    127 
    128 /* DW_ATE */
    129 #define DW_ATE_address 0x01
    130 #define DW_ATE_boolean 0x02
    131 #define DW_ATE_complex_float 0x03
    132 #define DW_ATE_float 0x04
    133 #define DW_ATE_signed 0x05
    134 #define DW_ATE_signed_char 0x06
    135 #define DW_ATE_unsigned 0x07
    136 #define DW_ATE_unsigned_char 0x08
    137 #define DW_ATE_UTF 0x10
    138 
    139 /* DW_LNS / DW_LNE / DW_LNCT */
    140 #define DW_LNS_copy 0x01
    141 #define DW_LNS_advance_pc 0x02
    142 #define DW_LNS_advance_line 0x03
    143 #define DW_LNS_set_file 0x04
    144 #define DW_LNS_set_column 0x05
    145 #define DW_LNS_negate_stmt 0x06
    146 #define DW_LNS_set_basic_block 0x07
    147 #define DW_LNS_const_add_pc 0x08
    148 #define DW_LNS_fixed_advance_pc 0x09
    149 #define DW_LNS_set_prologue_end 0x0a
    150 #define DW_LNS_set_epilogue_begin 0x0b
    151 #define DW_LNS_set_isa 0x0c
    152 
    153 #define DW_LNE_end_sequence 0x01
    154 #define DW_LNE_set_address 0x02
    155 #define DW_LNE_set_discriminator 0x04
    156 
    157 #define DW_LNCT_path 0x01
    158 #define DW_LNCT_directory_index 0x02
    159 #define DW_LNCT_timestamp 0x03
    160 #define DW_LNCT_size 0x04
    161 #define DW_LNCT_MD5 0x05
    162 
    163 /* DW_RLE */
    164 #define DW_RLE_end_of_list 0x00
    165 #define DW_RLE_offset_pair 0x04
    166 #define DW_RLE_start_length 0x07
    167 
    168 /* DW_LLE */
    169 #define DW_LLE_end_of_list 0x00
    170 #define DW_LLE_base_addressx 0x01
    171 #define DW_LLE_startx_endx 0x02
    172 #define DW_LLE_startx_length 0x03
    173 #define DW_LLE_offset_pair 0x04
    174 #define DW_LLE_default_location 0x05
    175 #define DW_LLE_base_address 0x06
    176 #define DW_LLE_start_end 0x07
    177 #define DW_LLE_start_length 0x08
    178 
    179 /* DW_OP */
    180 #define DW_OP_addr 0x03
    181 #define DW_OP_const1u 0x08
    182 #define DW_OP_const1s 0x09
    183 #define DW_OP_const2u 0x0a
    184 #define DW_OP_const2s 0x0b
    185 #define DW_OP_const4u 0x0c
    186 #define DW_OP_const4s 0x0d
    187 #define DW_OP_const8u 0x0e
    188 #define DW_OP_const8s 0x0f
    189 #define DW_OP_constu 0x10
    190 #define DW_OP_consts 0x11
    191 #define DW_OP_dup 0x12
    192 #define DW_OP_drop 0x13
    193 #define DW_OP_and 0x1a
    194 #define DW_OP_minus 0x1c
    195 #define DW_OP_mul 0x1e
    196 #define DW_OP_or 0x21
    197 #define DW_OP_plus 0x22
    198 #define DW_OP_plus_uconst 0x23
    199 #define DW_OP_shl 0x24
    200 #define DW_OP_shr 0x25
    201 #define DW_OP_shra 0x26
    202 #define DW_OP_xor 0x27
    203 #define DW_OP_lit0 0x30
    204 #define DW_OP_reg0 0x50
    205 #define DW_OP_breg0 0x70
    206 #define DW_OP_regx 0x90
    207 #define DW_OP_fbreg 0x91
    208 #define DW_OP_bregx 0x92
    209 #define DW_OP_call_frame_cfa 0x9c
    210 #define DW_OP_stack_value 0x9f
    211 
    212 /* DW_CFA */
    213 #define DW_CFA_nop 0x00
    214 #define DW_CFA_set_loc 0x01
    215 #define DW_CFA_advance_loc1 0x02
    216 #define DW_CFA_advance_loc2 0x03
    217 #define DW_CFA_advance_loc4 0x04
    218 #define DW_CFA_offset_extended 0x05
    219 #define DW_CFA_restore_extended 0x06
    220 #define DW_CFA_undefined 0x07
    221 #define DW_CFA_same_value 0x08
    222 #define DW_CFA_register 0x09
    223 #define DW_CFA_remember_state 0x0a
    224 #define DW_CFA_restore_state 0x0b
    225 #define DW_CFA_def_cfa 0x0c
    226 #define DW_CFA_def_cfa_register 0x0d
    227 #define DW_CFA_def_cfa_offset 0x0e
    228 #define DW_CFA_def_cfa_expression 0x0f
    229 #define DW_CFA_expression 0x10
    230 #define DW_CFA_offset_extended_sf 0x11
    231 #define DW_CFA_def_cfa_sf 0x12
    232 #define DW_CFA_def_cfa_offset_sf 0x13
    233 #define DW_CFA_val_offset 0x14
    234 #define DW_CFA_val_offset_sf 0x15
    235 #define DW_CFA_val_expression 0x16
    236 #define DW_CFA_advance_loc 0x40
    237 #define DW_CFA_offset 0x80
    238 #define DW_CFA_restore 0xc0
    239 
    240 /* DW_EH_PE */
    241 #define DW_EH_PE_absptr 0x00
    242 #define DW_EH_PE_uleb128 0x01
    243 #define DW_EH_PE_udata2 0x02
    244 #define DW_EH_PE_udata4 0x03
    245 #define DW_EH_PE_udata8 0x04
    246 #define DW_EH_PE_sleb128 0x09
    247 #define DW_EH_PE_sdata2 0x0a
    248 #define DW_EH_PE_sdata4 0x0b
    249 #define DW_EH_PE_sdata8 0x0c
    250 #define DW_EH_PE_pcrel 0x10
    251 #define DW_EH_PE_textrel 0x20
    252 #define DW_EH_PE_datarel 0x30
    253 #define DW_EH_PE_funcrel 0x40
    254 #define DW_EH_PE_aligned 0x50
    255 #define DW_EH_PE_omit 0xff
    256 
    257 /* DW_UT */
    258 #define DW_UT_compile 0x01
    259 
    260 #endif