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

--- Comment #2 from Henning Meyer <hmeyer.eu at gmail dot com> ---
The following C++ program represents the simplest example I could find that is
complicated enough to warrant the creation of discontinuous ranges in debug
information:


#include <memory>
struct Base {};
void func() {
        static std::unique_ptr<Base> varStatic = std::make_unique<Base>();
}
int main(int, char**) {
        func();
        return 0;
}

I compile with g++-14 -g3 -gdwarf-5 -O2 -c:

readelf --dwarf-check --debug-dump=Ranges

Contents of the .debug_rnglists section:

readelf: Warning: Range lists in .debug_rnglists section start at 0xc

 Table at Offset: 0:
  Length:          0x5d
  DWARF version:   5
  Address size:    8
  Segment size:    0
  Offset entries:  0
    Offset   Begin    End
    0000000c 0000000000000024 (base address)
    00000015 0000000000000024 000000000000002e 
    00000018 000000000000003c 0000000000000043 
    0000001b <End of list>
readelf: Warning: There is a hole [0xc - 0x1c] in .debug_rnglists section.
    0000001c 000000000000002e (base address)
    00000025 000000000000002e 000000000000002e  (start == end)
    00000028 000000000000003c 0000000000000043 
    0000002b <End of list>
readelf: Warning: There is a hole [0x1c - 0x2c] in .debug_rnglists section.
    0000002c 000000000000002e (base address)
    00000035 000000000000002e 000000000000003c 
    00000038 0000000000000043 000000000000004f 
    0000003b 0000000000000050 0000000000000053 
    0000003e 0000000000000055 000000000000005e 
    00000041 <End of list>
readelf: Warning: There is a hole [0x2c - 0x42] in .debug_rnglists section.
    00000042 0000000000000000 0000000000000076 
    0000004c 0000000000000000 0000000000000017 
    00000056 0000000000000000 000000000000000e 
    00000060 <End of list>

(That is the complete output). I can attach the binary, it is 180K in size.

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

Reply via email to