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

Bernd Edlinger bernd.edlinger@hotmail.de
Mon Jan 25 15:47:30 GMT 2021


On 1/25/21 4:37 PM, Tom de Vries wrote:
> On 1/25/21 4:27 PM, Simon Marchi wrote:
>>
>>
>> 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?
>>>
>>>
> 
> I've looked at it, but it's optimized code, which may be fragile in
> terms of number of break locations.  I wouldn't mind a dwarf assembly
> version of that one though.
> 

Yes, unfortunately I have not any experience with writing such assembly
tests, but I am always impressed when one of you does it though :-)

Nevertheless, the test case seems to be stable from gcc-4.8 .. gcc-11,
that it fails without the patch and passes with the patch.

So is it okay to push my partial symbols test as-is?


Thanks
Bernd.

>>> Thanks
>>> Bernd.
>>>
>>
>> Haha, I also wrote the same patch:
>>
>> https://sourceware.org/pipermail/gdb-patches/2021-January/175225.html
>>
> 
> Heh, this starts to sound a lot like a "how many software engineers does
> it take to fix one line of code" kind of joke :)
> 
>> 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.
> 
> Ah, that's good to know.
> 
> I've push mine, and added you both as author in the ChangeLog.
> 
> Thanks,
> - Tom
> 
> 


More information about the Gdb-patches mailing list