Dwarf_FDE (libdw)
Sasha Da Rocha Pinheiro
darochapinhe@wisc.edu
Mon Jul 17 17:53:00 GMT 2017
Yes, that's what I am trying to do right now.
Try/catch blocks or exception handling is the right term I guess.
From: Mark Wielaard <mark@klomp.org>
Sent: Monday, July 17, 2017 12:48 PM
To: Sasha Da Rocha Pinheiro
Cc: elfutils-devel@sourceware.org
Subject: Re: Dwarf_FDE (libdw)
On Mon, Jul 17, 2017 at 05:16:00PM +0000, Sasha Da Rocha Pinheiro wrote:
> So you're saying that the augmentation data of a FDE is the augmentation
> data of its CIE?
> https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-PDA/LSB-PDA/ehframechpt.html
Chapter 8. Exception Frames - Linux Foundation
refspecs.linuxfoundation.org
Chapter 8. Exception Frames. When using languages that support exceptions, such as C++, additional information must be provided to the runtime environment that ...
> says differently.
If you need to read the low-level augmentation data from an FDE then you
need to know whether it is there and how the FDE addresses are encoded.
Which is encoded in the CIE augmentation data.
> The thing is I need to get catch blocks, and eh_frame is not exactly
> Dwarf format. That's why I need FDE augmentation data also.
> Libdw doesn't do this, am I correct?
libdw handles both .debug_frame and .eh_frame data.
And you can use the Dwarf_Frames to unwind.
I believe the only thing not directly exposed are the lsda and
personality pointers. Is that the functionality that you need for
"catch blocks"?
Cheers,
Mark
More information about the Elfutils-devel
mailing list