diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2014-10-14 19:17:47 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2014-10-14 19:17:47 +0200 |
commit | 9a262b34da8960fc644674d8b8dcadcd7e51b829 (patch) | |
tree | 7ee7376cad2754fb28cc0de0573f69d71523c4f0 /debug | |
parent | 6fea0ef0958b66711235659ac2cd7122afc04897 (diff) | |
download | compcert-9a262b34da8960fc644674d8b8dcadcd7e51b829.tar.gz compcert-9a262b34da8960fc644674d8b8dcadcd7e51b829.zip |
Added more types.
Diffstat (limited to 'debug')
-rw-r--r-- | debug/DwarfTypes.ml | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/debug/DwarfTypes.ml b/debug/DwarfTypes.ml index afa29e13..61a6e768 100644 --- a/debug/DwarfTypes.ml +++ b/debug/DwarfTypes.ml @@ -44,11 +44,36 @@ type language = type block = string (* Used as bitvector *) +type calling_convention = + | DW_CC_normal + | DW_CC_program + | DW_CC_nocall + | DW_CC_lo_user + | DW_CC_hi_user + +type inline = + | DW_INL_not_inlined + | DW_INL_inlined + | DW_INL_declared_not_inlined + | DW_INL_declared_inlined + type const_value = | String of string | Const of constant | Block of block +type location_value = + | Const of constant + | Block of block + +type data_location_value = + | Block of block + | Ref of reference + +type bound_value = + | Const of constant + | Ref of reference + (* Types representing the attribute information per tag value *) type dw_tag_array_type = @@ -119,3 +144,103 @@ type dw_tag_enumerator = dw_at_name: string option; dw_at_sibling: reference option; } + +type dw_tag_formal_parameter = + { + dw_at_artificial: flag option; + dw_at_location: location_value option; + dw_at_name: string option; + dw_at_segment: location_value option; + dw_at_sibling: reference option; + dw_at_type: reference option; + dw_at_variable_parameter: flag option; + } + +type dw_tag_inlined_subroutine = + { + dw_at_high_pc: address option; + dw_at_low_pc: address option; + dw_at_segment: location_value option; + dw_at_sibling: reference option; + dw_at_return_addr: location_value option; + dw_at_start_scope: constant option; + } + +type dw_tag_label = + { + dw_at_low_pc: address option; + dw_at_name: string option; + dw_at_segment: location_value option; + dw_at_start_scope: constant option; + dw_at_sibling: reference option; + } + +type dw_tag_lexical_block = + { + dw_at_high_pc: address option; + dw_at_low_pc: address option; + dw_at_name: string option; + dw_at_segment: location_value option; + dw_at_sibling: reference option; + } + +type dw_tag_member = + { + dw_at_byte_size: constant option; + dw_at_bit_offset: constant option; + dw_at_bit_size: constant option; + dw_at_data_member_location: data_location_value option; + dw_at_declaration: flag option; + dw_at_name: string option; + dw_at_sibling: reference option; + dw_at_type: reference option; + } + +type dw_tag_pointer_type = + { + dw_at_address_class: constant option; + dw_at_sibling: reference option; + dw_at_type: reference option; + } + +type dw_tag_structure_type = + { + dw_at_byte_size: constant option; + dw_at_declaration: flag option; + dw_at_name: string option; + dw_at_sibling: reference option; + dw_at_start_scope: constant option; + } + +type dw_tag_subprogram = + { + dw_at_address_class: constant option; + dw_at_artificial: flag option; + dw_at_calling_convention: calling_convention option; + dw_at_declaration: flag option; + dw_at_external: flag option; + dw_frame_base: location_value option; + dw_at_high_pc: address option; + dw_at_inline: inline option; + dw_at_low_pc: address option; + dw_at_name: string option; + dw_at_prototyped: flag option; + dw_at_return_addr: location_value option; + dw_at_segment: location_value option; + dw_at_sibling: reference option; + dw_at_start_scope: constant option; + dw_at_static_link: location_value option; + dw_at_type: reference option; + } + +type dw_subrange_type = + { + dw_at_byte_size: constant option; + dw_at_declaration: flag option; + dw_at_count: bound_value option; + dw_at_lower_bound: bound_value option; + dw_at_name: string option; + dw_at_sibling: reference option; + dw_at_type: reference option; + dw_at_upper_bound: bound_value option; + } |