[LLVMdev] How to initiate/throw an exception (resume just continues)

edA-qa mort-ora-y eda-qa at disemia.com
Fri Mar 29 10:52:55 PDT 2013


On 29/03/13 18:34, David Chisnall wrote:
> handlers, and so on), and a generic structure for the unwind library.
> It then passes it to _Unwind_RaiseException(), which is the generic
> unwind routine.

Excuse me if this sounds silly, but what "library" does the _Unwind_
series of functions come from? Is this a kind of target ABI instrinsic
library, or must I link with a particular runtime library to get these
functions?

I assume using the JIT there will somehow already be there, so at least
I can start experimenting. Perhaps another question, since this does
generate ABI compliant EH-tables, could my throw function just invoke a
native throw? That is, for really quick testing can I just create a c++
function which does a throw?

> The personality function is probably the least fun code I've ever
> written (I've now done it three times, for three different languages,
> and it doesn't become any more fun).  If you get it wrong, the stack
> is gone by the time you get into the debugger, so lots and lots of
> logging statements are your friend...

I feel excited already. :)
I'm still quite unclear on this part as well. Don't suppose you ever
wrote a tutorial on this aspect, or have some example code you could show?


-- 
edA-qa mort-ora-y
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Sign: Please digitally sign your emails.
Encrypt: I'm also happy to receive encrypted mail.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130329/d9e31333/attachment.sig>


More information about the llvm-dev mailing list