aboutsummaryrefslogtreecommitdiffstats
path: root/debug/DwarfTypes.mli
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-09-17 18:19:37 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-09-17 18:19:37 +0200
commitc8a0b76c6b9c3eb004a7fccdd2ad15cc8615ef93 (patch)
treec9dacff414156d4d527ac40078cbdc51f160c8d0 /debug/DwarfTypes.mli
parent98cddc7ba45b34fbd71d9a80c27a8e5ec6b311b0 (diff)
downloadcompcert-kvx-c8a0b76c6b9c3eb004a7fccdd2ad15cc8615ef93.tar.gz
compcert-kvx-c8a0b76c6b9c3eb004a7fccdd2ad15cc8615ef93.zip
First version with computation of dwarf info from debug info.
Introduced a new dwarf generation from the information collected in the DebugInformation and removed the old CtODwarf translation.
Diffstat (limited to 'debug/DwarfTypes.mli')
-rw-r--r--debug/DwarfTypes.mli22
1 files changed, 13 insertions, 9 deletions
diff --git a/debug/DwarfTypes.mli b/debug/DwarfTypes.mli
index b852d1f4..eb7d4060 100644
--- a/debug/DwarfTypes.mli
+++ b/debug/DwarfTypes.mli
@@ -37,13 +37,18 @@ type address = int
type block = string
+type location_expression =
+ | DW_OP_plus_uconst of constant
+ | DW_OP
+
+
type location_value =
| LocSymbol of atom
| LocConst of constant
| LocBlock of block
type data_location_value =
- | DataLocBlock of block
+ | DataLocBlock of location_expression list
| DataLocRef of reference
type bound_value =
@@ -94,7 +99,6 @@ type dw_tag_enumerator =
type dw_tag_formal_parameter =
{
- formal_parameter_id: int;
formal_parameter_file_loc: file_loc option;
formal_parameter_artificial: flag option;
formal_parameter_name: string option;
@@ -141,12 +145,13 @@ type dw_tag_structure_type =
type dw_tag_subprogram =
{
- subprogram_id: int;
- subprogram_file_loc: file_loc option;
- subprogram_external: flag option;
+ subprogram_file_loc: file_loc;
+ subprogram_external: flag option;
subprogram_name: string;
subprogram_prototyped: flag;
- subprogram_type: reference option;
+ subprogram_type: reference option;
+ subprogram_high_pc: reference option;
+ subprogram_low_pc: reference option;
}
type dw_tag_subrange_type =
@@ -184,12 +189,12 @@ type dw_tag_unspecified_parameter =
type dw_tag_variable =
{
- variable_id: int;
- variable_file_loc: file_loc option;
+ variable_file_loc: file_loc;
variable_declaration: flag option;
variable_external: flag option;
variable_name: string;
variable_type: reference;
+ variable_location: location_value option;
}
type dw_tag_volatile_type =
@@ -268,7 +273,6 @@ module type DWARF_TARGET=
val get_end_addr: unit -> int
val get_stmt_list_addr: unit -> int
val name_of_section: section_name -> string
- val get_fun_addr: string -> (int * int) option
val get_location: int -> location_value option
val get_frame_base: int -> location_value option
val symbol: out_channel -> atom -> unit