From 2c1db96b6614b8a9d8907c41bb16984d9f41a376 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 8 Aug 2021 09:36:12 -0600 Subject: [PATCH] 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. --- gdb/dwarf2/read.c | 6 ++++++ gdb/testsuite/gdb.dwarf2/fission-reread.exp | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 8dc2be6f176..2e85deeaa39 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 16a139eb0cd..661e90b2f21 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.*" -- 2.30.2