This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
Re: mjw/dwarf_output branch
- From: Mark Wielaard <mjw at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Thu, 27 Jan 2011 16:14:55 +0100
- Subject: Re: mjw/dwarf_output branch
On Wed, 2011-01-26 at 22:14 +0100, Mark Wielaard wrote:
> So what is missing is "chaining" the reference attribute local hashes
> (if we don't chain them, we end up with very "flat" hashes where lots
> dies get the same hash just because they have a reference attribute).
>
> Ideally this would just be ref_attr.reference()->local_hash (), but
> since we calculate the hash of the attributes_type just before it is
> inserted into the collector this doesn't work (the way this aborts is
> somewhat obscure though - it ends up in in the dwarf_data::variant
> constructor that throws a "can't happen!"). I am a little confused atm
> about how the instantiation of the attributes_type gets triggered
> precisely. It is probably necessary to do this in two phases by lifting
> parts of pending_entry::final () method out in a second initialization
> step.
So here I am really a bit stuck. Although I figured out (see previous
email) how the dwarf_output::attributes_type gets constructed from the
dwarf_data::attributes_type, I don't fully understand how to "recapture"
the original references that the copier so diligently kept track of.
What/where/how would be the best point to extract this info, so that we
have it when we want to calculate a local hash for a reference attribute
(which is the local hash of the die pointed to by the attribute)?
Thanks,
Mark