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.