Ignore 0,0 entries in .debug_aranges
authorTom Tromey <tromey@adacore.com>
Thu, 14 Apr 2022 15:36:09 +0000 (09:36 -0600)
committerTom Tromey <tromey@adacore.com>
Thu, 14 Apr 2022 18:22:07 +0000 (12:22 -0600)
commit1a7c41d5ece7d0d1aa77d8019ee46f03181854fa
tree3fb5ec6ef8a926426c5ce78bd3b5768540244343
parent8bbdbd6985d8d7615bab69f97f07e8bb78fb98f8
Ignore 0,0 entries in .debug_aranges

When running the internal AdaCore test suite against the new DWARF
indexer, I found one regression on RISC-V.  The test in question uses
--gc-sections, and winds up with an entry in the middle of a
.debug_aranges that has both address and length of 0.  In this
scenario, gdb assumes the entries are terminated and then proceeds to
reject the section because it reads a subsequent entry as if it were a
header.

It seems to me that, because each header describes the size of each
.debug_aranges CU, it's better to simply ignore 0,0 entries and simply
read to the end.  That is what this patch does.

I've patched an existing test to provide a regression test for this.
gdb/dwarf2/read.c
gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp