aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-06-11 13:23:28 -0600
committerTom Tromey <tom@tromey.com>2022-04-12 09:31:15 -0600
commitcffae852e33b3c735cc48a398a15e7236bc39928 (patch)
tree9c4fd641e28c8cd14f58e74687f3c4c1ea4d5c96
parent1ddd39f58fea3ec9837018506ea1d7b86e51dc7b (diff)
downloadgdb-cffae852e33b3c735cc48a398a15e7236bc39928.zip
gdb-cffae852e33b3c735cc48a398a15e7236bc39928.tar.gz
gdb-cffae852e33b3c735cc48a398a15e7236bc39928.tar.bz2
Add dwarf2_per_cu_data::addresses_seen
This adds a new member to dwarf2_per_cu_data that indicates whether addresses have been seen for this CU. This is then set by the .debug_aranges reader. The idea here is to detect when a CU does not have address information, so that the new indexer will know to do extra scanning in that case.
-rw-r--r--gdb/dwarf2/read.c2
-rw-r--r--gdb/dwarf2/read.h5
2 files changed, 7 insertions, 0 deletions
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 4252443..e0ae733 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -2740,6 +2740,8 @@ read_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
- baseaddr);
addrmap_set_empty (mutable_map, start, end - 1, per_cu);
}
+
+ per_cu->addresses_seen = true;
}
return true;
diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h
index effeaabc..58f6a67 100644
--- a/gdb/dwarf2/read.h
+++ b/gdb/dwarf2/read.h
@@ -104,6 +104,7 @@ struct dwarf2_per_cu_data
reading_dwo_directly (false),
tu_read (false),
m_header_read_in (false),
+ addresses_seen (false),
unit_type {},
lang (language_unknown)
{
@@ -154,6 +155,10 @@ struct dwarf2_per_cu_data
it private at the moment. */
mutable bool m_header_read_in : 1;
+ /* If addresses have been read for this CU (usually from
+ .debug_aranges), then this flag is set. */
+ bool addresses_seen : 1;
+
/* The unit type of this CU. */
ENUM_BITFIELD (dwarf_unit_type) unit_type : 8;