This is the mail archive of the 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: Using dwfl to enumerate frames of current thread

Mark Wielaard <> writes:

> On Fri, Aug 21, 2015 at 09:35:14AM +0200, Ben Gamari wrote:
>> I have noticed that `/opt/exp/elfutils-root/bin/readelf -e
>> ghc/stage2/build/Main.o --debug-dump=aranges` returns nothing for
>> GHC-produced objects whereas it does not for objects produced by GCC.
> 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.
Brilliant! I'll try implementing these.

I know this is probably a "patches accepted" sort of task, but it would
be great if libdw documented precisely what it expects from user objects
in order to behave as expected. Even better would be optional warnings
when the library doesn't find a DWARF annotation that it expects. As
someone relatively new to DWARF, it is rather difficult to get a
high-level view of what the significant differences are.

Thanks for all of your help so far!

- Ben

Attachment: signature.asc
Description: PGP signature

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