[PATCH][gdb/symtab] Handle DW_AT_ranges with DW_FORM_sec_off in partial DIE

Simon Marchi simon.marchi@polymtl.ca
Mon Jan 25 15:27:34 GMT 2021



On 2021-01-25 7:52 a.m., Bernd Edlinger wrote:
> On 1/25/21 1:24 PM, Tom de Vries wrote:
>> Hi,
>>
>> While looking into a failure in gdb.go/package.exp with gcc-11, I noticed that
>> gdb shows some complaints when loading the executable (also with gcc-10, where
>> the test-case passes):
>> ...
>> $ gdb -batch -iex "set complaints 100" package.10 -ex start
>> During symbol reading: Attribute value is not a constant (DW_FORM_sec_offset)
>> Temporary breakpoint 1 at 0x402ae6: file gdb.go/package1.go, line 8.
>> During symbol reading: Attribute value is not a constant (DW_FORM_sec_offset)
>> During symbol reading: Invalid .debug_rnglists data (no base address)
>> ...
>>
>> Fix this by using as_unsigned () to read DW_AT_ranges in the partial DIE
>> reader, similar to how that is done in dwarf2_get_pc_bounds.
>>
>> Tested on x86_64-linux.
>>
>> Any comments?
>>
> 
> Oh, interesting.
> 
> This is exactly what I have posted here:
> 
> https://sourceware.org/pipermail/gdb-patches/2021-January/174660.html
> 
> but my test case shows the regression in the partial symbols.
> 
> 
> 
> Maybe you can take my test case and merge it to your patch?
> 
> 
> Thanks
> Bernd.
> 

Haha, I also wrote the same patch:

https://sourceware.org/pipermail/gdb-patches/2021-January/175225.html

Either of your patches is fine with me.  Note that the test that I add
later in my series (written with the DWARF assembler) triggers the bug
as well.

Simon


More information about the Gdb-patches mailing list