https://sourceware.org/bugzilla/show_bug.cgi?id=27805
Jim Wilson <wilson at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wilson at gcc dot gnu.org --- Comment #1 from Jim Wilson <wilson at gcc dot gnu.org> --- Using readelf -wr to look at the debug_aranges section, I see entries like Length: 44 Version: 2 Offset into .debug_info: 0x987 Pointer Size: 4 Segment Size: 0 Address Length 00000000 00000000 20400132 00000002 20400134 0000003a 00000000 00000000 An address/length entry of 0/0 is supposed to mark the end of the list, but here we have one at the beginning. This is confusing elfutils which is trying to move byte by byte through the aranges section. libdw/dwarf_aranges.c has /* Two zero values mark the end. */ if (range_address == 0 && range_length == 0) break; and then assumes that the next entry is immediately following, which it isn't, and it ends up reading garbage. binutils seems to be using the length field to find the last entry. And readelf is ignoring the 0/0 end of list rule so that we can see the invalid entries. There are a lot of aranges that have 0/0 entries not at the end of the list. -- You are receiving this mail because: You are on the CC list for the bug.