aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-08-08 09:36:12 -0600
committerTom Tromey <tom@tromey.com>2021-08-10 15:33:34 -0600
commit2c1db96b6614b8a9d8907c41bb16984d9f41a376 (patch)
tree4240a33b29125cfc45b991245db8c5c4263c5ab4 /gdb
parent192786c72a36388dcf99e21b0335eca0977f3435 (diff)
downloadbinutils-2c1db96b6614b8a9d8907c41bb16984d9f41a376.zip
binutils-2c1db96b6614b8a9d8907c41bb16984d9f41a376.tar.gz
binutils-2c1db96b6614b8a9d8907c41bb16984d9f41a376.tar.bz2
Ignore .debug_types when reading .debug_aranges
I noticed that the fission-reread.exp test case can cause a complaint when run with --target_board=cc-with-debug-names: warning: Section .debug_aranges in [...]/fission-reread has duplicate debug_info_offset 0x0, ignoring .debug_aranges. The bug here is that this executable has both .debug_info and .debug_types, and both have a CU at offset 0x0. This triggers the duplicate warning. Because .debug_types doesn't provide any address ranges, these CUs can be ignored. That is, this bug turns out to be another regression from the info/types merger patch. This patch fixes the problem by having this loop igore type units. fission-reread.exp is updated to test for the bug.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/dwarf2/read.c6
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-reread.exp3
2 files changed, 8 insertions, 1 deletions
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 8dc2be6..2e85dee 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -2536,6 +2536,12 @@ create_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
debug_info_offset_to_per_cu;
for (const auto &per_cu : per_bfd->all_comp_units)
{
+ /* A TU will not need aranges, and skipping them here is an easy
+ way of ignoring .debug_types -- and possibly seeing a
+ duplicate section offset -- entirely. */
+ if (per_cu->is_debug_types)
+ continue;
+
const auto insertpair
= debug_info_offset_to_per_cu.emplace (per_cu->sect_off,
per_cu.get ());
diff --git a/gdb/testsuite/gdb.dwarf2/fission-reread.exp b/gdb/testsuite/gdb.dwarf2/fission-reread.exp
index 16a139e..661e90b 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-reread.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-reread.exp
@@ -47,7 +47,8 @@ if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" $options \
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load_no_complaints $binfile
gdb_test "break -q main" "Breakpoint.*at.*"