Plan to contribute for supporting split dwarf (-gsplit-dwarf) in dwz
Mark Wielaard
mark@klomp.org
Thu Feb 18 14:45:08 GMT 2021
Hi Nagajyothi,
On Wed, 2021-02-17 at 05:53 +0000, E, Nagajyothi via Dwz wrote:
> I am working on adding support for the dwarf5 .debug_str_offsets,
> .debug_addr sections and the related forms DW_FORM_strx[1234], DW_FORM_addrx[1234].
> Please let me know if anyone has already started work on these.
Thanks, I don't believe anybody is working on this right now.
There is already a bug for .debug_addr/DW_FORM_addrx[1234] support:
https://sourceware.org/bugzilla/show_bug.cgi?id=27375
I think this shouldn't be too hard. Any DIE that references an address
cannot be moved to an alt file, so simply mark it with
die_no_multifile. We do try to optimize DW_AT_low/high_pc attribute
pairs, so double check that doesn't interfere with DW_FORM_addrx[1234]
processing.
Also note that there are two new location operations DW_OP_addrx and
DW_OP_constx that can reference the .debug_addr section index.
As a followup you could try optimizing things, but then you need to
keep track of all the addresses used and see if there are duplicates
that could be turned into a (smaller) DW_FORM_addrx[1234] index. But I
would keep that separate from the initial implementation.
For .debug_str_offset/DW_FORM_strx[1234] I opened a new bug.
https://sourceware.org/bugzilla/show_bug.cgi?id=27434
This is a little trickier than DW_FORM_addrx[1234] since such DIEs
using DW_FORM_strx may be moved to a multifile. You also probably want
to make them equal to DW_FORM_strp entries pointing (indirectly) to the
same string.
You might want to add a note to the the bugs that you are working on
them.
Thanks,
Mark
More information about the Dwz
mailing list