diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-10-16 13:06:09 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-10-16 13:06:09 +0200 |
commit | 24b4159b6a29328c529e0e59405e03ea192aa99e (patch) | |
tree | 4b39da911a2eb037e3c9fb3950d53bb0bd6a41b2 /debug/DwarfTypes.mli | |
parent | 1e52bb2001964d87086cea00d0cb779e270b99ce (diff) | |
download | compcert-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.mli | 12 |
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 |