mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-14 12:40:58 +08:00
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.
This commit is contained in:
gdb
@ -2536,6 +2536,12 @@ create_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
|
|||||||
debug_info_offset_to_per_cu;
|
debug_info_offset_to_per_cu;
|
||||||
for (const auto &per_cu : per_bfd->all_comp_units)
|
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
|
const auto insertpair
|
||||||
= debug_info_offset_to_per_cu.emplace (per_cu->sect_off,
|
= debug_info_offset_to_per_cu.emplace (per_cu->sect_off,
|
||||||
per_cu.get ());
|
per_cu.get ());
|
||||||
|
@ -47,7 +47,8 @@ if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" $options \
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
clean_restart $binfile
|
clean_restart
|
||||||
|
gdb_load_no_complaints $binfile
|
||||||
|
|
||||||
gdb_test "break -q main" "Breakpoint.*at.*"
|
gdb_test "break -q main" "Breakpoint.*at.*"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user