[PATCH][gdb] Fix missing symtab includes

Simon Marchi simark@simark.ca
Sun Mar 29 15:39:31 GMT 2020


On 2020-03-28 1:24 p.m., Tom de Vries wrote:
>> I am not able to reproduce this.  In both cases, I don't get the `includes`.
>>
>> What transformation is dwz expected to do on the binary?  Here, it looks like
>> it just compressed the debug info a little bit, changing the addresses, but the
>> general structure was untouched.
>>
>> I'm using the latest git version of dwz (commit b7111689a2ccec2f57343f1051ec8f1df5e89e5c).
> 
> Hi Simon,
> 
> thanks for trying this out.
> 
> I've attached the original a.out here (
> https://sourceware.org/bugzilla/show_bug.cgi?id=25718#c3 ) and the
> dwz-ed a.out here (
> https://sourceware.org/bugzilla/show_bug.cgi?id=25718#c4  ).
> 
> I'm hoping you might be able to reproduce using the latter file (and
> FWIW, I'm using the same dwz version).
> 
> I think the reason for the difference in what we are seeing is due to me
> using openSUSE, which has debug info on various linked in objects like
> glibc's init.c and elf-init.c. Looking at the readelf -wi output of the
> dwz-ed executable, dwz exploits commonality between those objects and
> hello.c, so it's not surprising dwz does not create partial units for
> platforms that do not have debug info for those objects.
> 
> Anyway, I'll need to construct a better test-case that reproduces the
> problem on other platforms.
> 
> Thanks,
> - Tom
> 

Thanks, your explanations make more sense with the the DWARF in those files,
I can reproduce the problem now.

I have a bit of trouble understanding the current code.  In particular, I am
trying to put in words what's the difference between the `read_symtab` and
`expand_symtab` methods of `partial_symtab`, but I can't quite do it.  I think
this would help to determine what's the right solution.

Simon


More information about the Gdb-patches mailing list