From: Tom de Vries Date: Thu, 10 Aug 2023 13:46:30 +0000 (+0200) Subject: [gdb/symtab] Fix assertion in write_debug_names X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=62a21046a98d081b5ac07afd0099dfd06465922c;p=binutils-gdb.git [gdb/symtab] Fix assertion in write_debug_names When running test-case gdb.dwarf2/pr13961.exp with target-board cc-with-debug-names, I run into: ... Running gdb.dwarf2/pr13961.exp ... gdb compile failed, gdb/dwarf2/index-write.c:1305: internal-error: \ write_debug_names: Assertion `counter == per_bfd->all_units.size ()' failed. ... This is a regression since commit 542a33e348a ("Only use the per-BFD object to write a DWARF index"), which did: ... - gdb_assert (counter == per_objfile->per_bfd->all_comp_units.size ()); + gdb_assert (counter == per_bfd->all_units.size ()); ... Fix this by reverting to using all_comp_units: ... gdb_assert (counter == per_bfd->all_comp_units.size ()); ... Tested on x86_64-linux, using target boards unix and cc-with-debug-names. PR symtab/30741 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30741 --- diff --git a/gdb/dwarf2/index-write.c b/gdb/dwarf2/index-write.c index 66c5378d677..fdc3b97968a 100644 --- a/gdb/dwarf2/index-write.c +++ b/gdb/dwarf2/index-write.c @@ -1302,7 +1302,7 @@ write_debug_names (dwarf2_per_bfd *per_bfd, cooked_index *table, } /* Verify that all units are represented. */ - gdb_assert (counter == per_bfd->all_units.size ()); + gdb_assert (counter == per_bfd->all_comp_units.size ()); gdb_assert (types_counter == per_bfd->all_type_units.size ()); for (const cooked_index_entry *entry : table->all_entries ())