This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: Exception Handling description


Michael Matz wrote:
Hi,

On Fri, 15 May 2009, Michael Eager wrote:

Is there any documentation on the contents of .eh_frame
and the augmentations used?

.eh_frame simply contains normal unwinding information, in DWARF2(34) format, you're familiar with that :)


And nothing more, specifically it does _not_ contain information about try/catch blocks inside functions. This is language specific data (which the Language Specific Data Area (LSDA) pointer in .eh_frame points to). The Augmentations were already explained, and in the x86-64 ABI (http://www.x86-64.org/documentation/abi.pdf, section 3.6 "Dwarf Definition", 4.2.4 "EH_FRAME sections" and 6.2.1 "Exception Handler Framework") we have some more info, but it's not _much_ more and also deals only with the augmentations.

Thanks. I remembered seeing the try/catch data, but mis-remembered that it was in the .eh_frame, not LDSA.

As the description of try/catch (and finally in some languages) is language specific it's not standardized. It is only understood by the personality routine (a pointer to it is encoded in .eh_frame too, when necessary). The whole exception throwing related unwinding explained somewhat okay in the above document, sections 6.2.1.

But the _format_ of the LSDA is not specified. It's really an implementation detail of the compiler/language and doesn't have to be agreed upon for mixing .o files from different compilers, as every compilation unit can have it's own personality routine.

This is what needs to be documented and specified for the PPC ABI.


Having said that, the LSDA format that gcc uses didn't change that much over time (for C++ at least), so describing it would be nice. http://www.codesourcery.com/public/cxx-abi/exceptions.pdf seems to describe something of it, I haven't verified how current it is, though.

Great. This looks like exactly what I was looking for.


Do you happen to know the copyright status on the HP document?


-- Michael Eager eager@eagercon.com 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077


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