This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/2] libdw: Add new function dwarf_cu_getdwarf.


On Sun, 2014-08-17 at 12:52 +0200, Dodji Seketeli wrote:
> Mark Wielaard <mjw@redhat.com> writes:
> 
> > In both systemtap and libabigail there is a need to get the actual Dwarf
> > underlying an Dwarf_Die or Dwarf_Attribute. Following a DIE reference
> > might end up in an alternate Dwarf since the addition of DWZ multifile
> > forms. Both Dwarf_Die and Dwarf_Attribute already contain a Dwarf_CU
> > handle. Add a function dwarf_cu_getdwarf to retrieve the underlying
> > Dwarf using the Dwarf_CU.
> 
> Thanks Mark!
> 
> This, indeed, is going to be useful for libabigail at least.  This new
> dwarf_cu_getdwarf function, along with the existing dwarf_diecu function
> will allow us to get the actual Dwarf a given DIE comes from.  And with
> the recently added dwarf_getalt function, we'll be able to tel if the
> DIE comes from the alternate Dwarf or not.  This is awesome.

Glad it is useful.

Do note that the existing dwarf_diecu gives you the top-level Dwarf_Die
for the CU, not a Dwarf_CU. Both the original Dwarf_Die and the result
from dwarf_diecu should have the same Dwarf_CU handle that you can use
with dwarf_cu_getdwarf. The Dwarf_CU represents the actual DWARF CU
concept, from which you can get some extra information not like address
or offset size used in the particular DIE tree (see also dwarf_cudie
that returns both that extra information and the top level Dwarf_DIE for
the CU). While the top-level Dwarf_Die is the compile/partial/type_unit
DIE (all other DIEs in the CU are children of this DIE).

Cheers,

Mark

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]