diff options
author | Tom Tromey <tom@tromey.com> | 2021-08-08 09:36:12 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2021-08-10 15:33:34 -0600 |
commit | 2c1db96b6614b8a9d8907c41bb16984d9f41a376 (patch) | |
tree | 4240a33b29125cfc45b991245db8c5c4263c5ab4 /gdb | |
parent | 192786c72a36388dcf99e21b0335eca0977f3435 (diff) | |
download | binutils-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.c | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/fission-reread.exp | 3 |
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.*" |