[PATCH] libdw: Handle GNU DebugFission split ranges.

Mark Wielaard mark@klomp.org
Thu May 24 13:26:00 GMT 2018


On Sat, 2018-05-19 at 16:03 +0200, Mark Wielaard wrote:
> GNU DebugFission split dwarf handles DW_FORM_sec_offset specially for
> attributes that point to ranges. The .debug_ranges section is not in
> the .dwo file, but in the main/skeleton object file. The sec_offset is
> not relocated (in the ELF file), but is an offset against the skeleton
> DIE DW_AT_GNU_ranges_base attribute. dwarf_formudata is changed so it
> still looks like a normal offset ptr into the .debug_ranges section.
> dwarf_ranges is adapted to look for the .debug_ranges in the main object
> file. dwarf_highpc and dwarf_lowpc now handle the highpc and lowpc
> attributes being inherited for the split unit DIE from the skeleton.
> 
> A new testcase is added to iterate over all ranges in a split GNU
> DebugFission file.

After double checking the test results after incorporating the full
DWARF5 rnglists support into readelf and libdw I found an embarrassing
bug. We didn't initialize the CU ranges_base causing some bad test
results. We also didn't handle bad DWARF correctly in one case. I am
pushing the following fixes for this.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-libdw-Initialize-ranges_base-add-invalid-DWARF-test-.patch
Type: text/x-patch
Size: 3883 bytes
Desc: 
URL: <http://sourceware.org/pipermail/elfutils-devel/attachments/20180524/f7218ac1/attachment.bin>


More information about the Elfutils-devel mailing list