https://sourceware.org/bugzilla/show_bug.cgi?id=32927

            Bug ID: 32927
           Summary: readelf --dwarf-check --debug-dump=Ranges produces
                    nonsense warnings for DWARF 4 and DWARF5
           Product: binutils
           Version: 2.45 (HEAD)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: hmeyer.eu at gmail dot com
  Target Milestone: ---

example output from --dwarf-check --debug-dump=Ranges:

DWARF4/debug_ranges:

Offset   Begin    End
    00000000 00000000000036d4 00000000000036d4 (start == end)
    00000000 00000000000036d8 00000000000036dc
    00000000 <End of list>
readelf: Warning: There is a hole [0 - 0x30] in .debug_ranges section.
    00000030 00000000000036d4 00000000000036d8
    00000030 00000000000036dc 00000000000036e5
    00000030 <End of list>
readelf: Warning: There is a hole [0x30 - 0x60] in .debug_ranges section.
    00000060 0000000000003704 0000000000003704 (start == end)
    00000060 0000000000003708 000000000000370c
    00000060 <End of list>
readelf: Warning: There is a hole [0x60 - 0x90] in .debug_ranges section.
    00000090 0000000000003704 0000000000003708
    00000090 000000000000370c 0000000000003715
    00000090 <End of list>

DWARF5/debug_rnglists:
    Offset   Begin    End
    0000000c 00000000000036d4 (base address)
    00000015 00000000000036d4 00000000000036d4  (start == end)
    00000018 00000000000036d8 00000000000036dc 
    0000001b <End of list>
readelf: Warning: There is a hole [0xc - 0x1c] in .debug_rnglists section.
    0000001c 00000000000036d4 (base address)
    00000025 00000000000036d4 00000000000036d8 
    00000028 00000000000036dc 00000000000036e5 
    0000002b <End of list>
readelf: Warning: There is a hole [0x1c - 0x2c] in .debug_rnglists section.
    0000002c 0000000000003704 (base address)
    00000035 0000000000003704 0000000000003704  (start == end)
    00000038 0000000000003708 000000000000370c 
    0000003b <End of list>

The hole check always triggers, even if the other output shows that there are
no holes.

If the hole check triggers, it prevents the overlap check from triggering, even
if there are overlaps. However, it is normal for compilers (GCC 13 and later)
to produce overlapping rangelists in debug_rnglists as noted in the discussion
of bug 30792.

readelf --dwarf-check --debug-dump=Ranges seems to be broken for all versions
since 2.35, which is the oldest I tested (debian oldstable).

I have not attached a binary, it seems to be wrong for all inputs.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to