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