[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] Interest in .debug_frame support?
From: |
Daniel Jacobowitz |
Subject: |
Re: [Libunwind-devel] Interest in .debug_frame support? |
Date: |
Wed, 3 Oct 2007 11:35:20 -0400 |
User-agent: |
Mutt/1.5.15 (2007-04-09) |
Hi Mark,
On Wed, Oct 03, 2007 at 05:10:00PM +0200, Mark Wielaard wrote:
> a) .debug_frame section. We already have some support for feeding some
> more information from a remote process to libunwind (I am currently
> flushing out our patches to the list so they can hopefully be merged,
> since the frysk libunwind diverged a bit over the last year). But we
> don't yet have the .debug_frame loading, feeding and parsing support
> itself.
Interesting. If I do go forward with this plan I'll be sure to take a
look at Frysk's copy.
> > The things that would have to be implemented:
> >
> > - Finding and opening files to map .debug_frame.
>
> So in frysk we do this ourselves (using libdwfl from elfutils) and we
> would need to feed that to libunwind.
I could easily do this - the immediate user I'm looking at is mpatrol,
which already has libelf and/or libbfd available. But it seemed like
a useful thing to add to libunwind for general use. If I'm going to
generalize, I'd rather generalize to something easy to use :-)
> > - Handling the differences between .debug_frame and .eh_frame.
> > They're important but small.
>
> I was looking for a description of the differences. But it seems people
> either just know and if you don't then you have to go through the DWARF
> standard and the LSB core specification Exception Frames [1] and
> carefully compare them side-by-side. Is there a better description of
> the differences?
I vaguely remember seeing one, but I can't think where. I was going
to work it out with the code base I'm most familiar with - there's a
very small handful of conditionals in GDB's DWARF reader, which
supports both formats. They are:
- Register numbering.
- The use of 0 in .eh_frame vs ~0 in .debug_frame to mark CIEs.
- PC-relative offsets from FDEs to CIEs in .eh_frame, instead of
section-relative.
To the best of my knowledge, that's it.
--
Daniel Jacobowitz
CodeSourcery