On 2014-04-10 08:53, deadalnix wrote:

The C++ personality function from GCC does not catch, but do the cleanup
on foreign exceptions. That sound like the right behavior to me.

As far as I understand the cleaning is only a part of what personality function does. The first thing it does is check if the thrown exception can be handled. Like determine if it's a C++ exception or some other exception. If I recall correctly, it also determines if and where to resume unwinding, where to find catch blocks and so on.

This [1] series of blog posts gives a pretty good understanding of how C++ exceptions work under the hood, for those that don't want to read the ABI documentation.

[1] http://monoinfinito.wordpress.com/series/exception-handling-in-c/

--
/Jacob Carlborg

Reply via email to