aboutsummaryrefslogtreecommitdiffstats
path: root/debug/DwarfTypes.mli
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-09-25 16:43:18 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-09-25 16:43:18 +0200
commitaff813685455559f6d6a88158dd3d605893ba3a3 (patch)
tree41905241a6f4d2969ad77e3952f4427d3cb4613d /debug/DwarfTypes.mli
parentfc8afb9287ab7b1607e5a7d2a03b0078fd9867d0 (diff)
downloadcompcert-aff813685455559f6d6a88158dd3d605893ba3a3.tar.gz
compcert-aff813685455559f6d6a88158dd3d605893ba3a3.zip
Added support for the locations of stack allocated local variables.
This commit adds furher support for location information for local variables and starts with the implementation of the debug_loc section.
Diffstat (limited to 'debug/DwarfTypes.mli')
-rw-r--r--debug/DwarfTypes.mli26
1 files changed, 18 insertions, 8 deletions
diff --git a/debug/DwarfTypes.mli b/debug/DwarfTypes.mli
index 1d41403b..f01e550a 100644
--- a/debug/DwarfTypes.mli
+++ b/debug/DwarfTypes.mli
@@ -12,8 +12,9 @@
(* Types used for writing dwarf debug information *)
-open Sections
+open BinNums
open Camlcoq
+open Sections
(* Basic types for the value of attributes *)
@@ -39,16 +40,17 @@ type block = string
type location_expression =
| DW_OP_plus_uconst of constant
- | DW_OP
-
+ | DW_OP_bregx of int * int32
+ | DW_OP_piece of int
type location_value =
| LocSymbol of atom
- | LocConst of constant
- | LocBlock of block
-
+ | LocRef of address
+ | LocSimple of location_expression
+ | LocList of location_expression list
+
type data_location_value =
- | DataLocBlock of location_expression list
+ | DataLocBlock of location_expression
| DataLocRef of reference
type bound_value =
@@ -233,6 +235,14 @@ type dw_entry =
id: reference;
}
+(* The type for the location list. *)
+type location_entry =
+ {
+ loc: (int * int * location_value) list;
+ loc_id: reference;
+ }
+type dw_locations = location_entry list
+
(* Module type for a matching from type to dwarf encoding *)
module type DWARF_ABBREVS =
sig
@@ -257,7 +267,7 @@ module type DWARF_ABBREVS =
val artificial_type_abbr: int
val variable_parameter_type_abbr: int
val bit_size_type_abbr: int
- val location_const_type_abbr: int
+ val location_ref_type_abbr: int
val location_block_type_abbr: int
val data_location_block_type_abbr: int
val data_location_ref_type_abbr: int