aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/dwarf2/read-debug-names.c1
-rw-r--r--gdb/dwarf2/read.c11
2 files changed, 7 insertions, 5 deletions
diff --git a/gdb/dwarf2/read-debug-names.c b/gdb/dwarf2/read-debug-names.c
index 2e5067e..89f5df6 100644
--- a/gdb/dwarf2/read-debug-names.c
+++ b/gdb/dwarf2/read-debug-names.c
@@ -166,6 +166,7 @@ create_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
addrmap_mutable mutable_map;
+ section->read (per_objfile->objfile);
if (read_addrmap_from_aranges (per_objfile, section, &mutable_map))
per_bfd->index_addrmap
= new (&per_bfd->obstack) addrmap_fixed (&per_bfd->obstack,
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index ea0b232..c8e21aa 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -1586,6 +1586,7 @@ dwarf2_per_bfd::map_info_sections (struct objfile *objfile)
ranges.read (objfile);
rnglists.read (objfile);
addr.read (objfile);
+ debug_aranges.read (objfile);
for (auto &section : types)
section.read (objfile);
@@ -1843,6 +1844,11 @@ read_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
dwarf2_section_info *section,
addrmap *mutable_map)
{
+ /* Caller must ensure that the section has already been read. */
+ gdb_assert (section->readin);
+ if (section->empty ())
+ return false;
+
struct objfile *objfile = per_objfile->objfile;
bfd *abfd = objfile->obfd.get ();
struct gdbarch *gdbarch = objfile->arch ();
@@ -1870,13 +1876,8 @@ read_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
}
std::set<sect_offset> debug_info_offset_seen;
-
- section->read (objfile);
-
const bfd_endian dwarf5_byte_order = gdbarch_byte_order (gdbarch);
-
const gdb_byte *addr = section->buffer;
-
while (addr < section->buffer + section->size)
{
const gdb_byte *const entry_addr = addr;