Using dwfl to enumerate frames of current thread

Mark Wielaard mjw at redhat.com
Fri Aug 21 22:53:35 UTC 2015


On Fri, Aug 21, 2015 at 06:25:38PM +0200, Ben Gamari wrote:
> Mark Wielaard <mjw at redhat.com> writes:
> 
> > And this is the problem. Sorry. I should have realized earlier.
> > We use the .debug_aranges to get a quick index of the CUs and which
> > address ranges they cover. In the case that there is no .debug_aranges
> > we could do a full scan of all CUs. But that is somewhat inefficient,
> > since no .debug_aranges could also mean that there really are no
> > CUs with address scope DIEs (however that is probably unlikely). But
> > if there is a .debug_aranges then we do assume it is complete. I am
> > thinking whether we should still scan all CUs anyway if we are
> > looking for an address that is really inside a module. But I think
> > that would quickly become very inefficient.
> >
> Does elfutils need .debug_ranges as well?

Only if the DWARF producer created DIEs with DW_AT_ranges attributes.
You seem to never do that. If your range is just one simple one you can
just use a DW_AT_low_pc/high_pc pair and .debug_ranges will never be
used.

Also see Appendix B -- Debug Section Relationships in
http://dwarfstd.org/doc/DWARF4.pdf for a picture of which and how
different debug sections might refer to each other.

Cheers,

Mark


More information about the elfutils-devel mailing list