aboutsummaryrefslogtreecommitdiffstats
path: root/debug/DwarfTypes.mli
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-10-16 13:06:09 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-10-16 13:06:09 +0200
commit24b4159b6a29328c529e0e59405e03ea192aa99e (patch)
tree4b39da911a2eb037e3c9fb3950d53bb0bd6a41b2 /debug/DwarfTypes.mli
parent1e52bb2001964d87086cea00d0cb779e270b99ce (diff)
downloadcompcert-kvx-24b4159b6a29328c529e0e59405e03ea192aa99e.tar.gz
compcert-kvx-24b4159b6a29328c529e0e59405e03ea192aa99e.zip
Implemented the usage of DW_AT_ranges for non-contiguous address ranges.
The gcc produces DW_AT_ranges for non-contiguous address ranges, like compilation units containing functions which are placed in different ELF-sections or lexical scopes that are split up. With this commit CompCert also uses this DWARF v3 feature for gnu backend based targets. In order to ensure backward compability a flag is added which avoids this and produces debug info in DWARF v2 format. Bug 17392.
Diffstat (limited to 'debug/DwarfTypes.mli')
-rw-r--r--debug/DwarfTypes.mli12
1 files changed, 8 insertions, 4 deletions
diff --git a/debug/DwarfTypes.mli b/debug/DwarfTypes.mli
index ff895623..a4c75201 100644
--- a/debug/DwarfTypes.mli
+++ b/debug/DwarfTypes.mli
@@ -89,7 +89,7 @@ type dw_form =
type dw_range =
| Pc_pair of reference * reference (* Simple low,high pc *)
- | Offset of reference * constant (* DWARF 3 version for different range *)
+ | Offset of constant (* DWARF 3 version for different range *)
| Empty (* Needed for compilation units only containing variables *)
(* Types representing the attribute information per tag value *)
@@ -273,6 +273,12 @@ type location_entry =
}
type dw_locations = constant option * location_entry list
+type range_entry = (address * address) list
+
+type dw_ranges = range_entry list
+
+type dw_string = (int * string) list
+
type diab_entry =
{
section_name: string;
@@ -284,9 +290,7 @@ type diab_entry =
type diab_entries = diab_entry list
-type dw_string = (int * string) list
-
-type gnu_entries = dw_entry * dw_locations * dw_string
+type gnu_entries = dw_entry * dw_locations * dw_string * dw_ranges
type debug_entries =
| Diab of diab_entries