From 62a21046a98d081b5ac07afd0099dfd06465922c Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 10 Aug 2023 15:46:30 +0200 Subject: [PATCH] [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 --- gdb/dwarf2/index-write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/dwarf2/index-write.c b/gdb/dwarf2/index-write.c index 66c5378..fdc3b979 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 ()) -- 2.7.4