From cffae852e33b3c735cc48a398a15e7236bc39928 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 11 Jun 2021 13:23:28 -0600 Subject: [PATCH] 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. --- gdb/dwarf2/read.c | 2 ++ gdb/dwarf2/read.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 425244358a7..e0ae7330732 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 effeaabc4af..58f6a673e69 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; -- 2.30.2