__dmd_personality_v0

"personality" function, specific to each language. This one, of course, is specific to DMD.

version(Posix)
_Unwind_Reason_Code
__dmd_personality_v0
(
int ver
,
_Unwind_Action actions
,
_Unwind_Exception_Class exceptionClass
,
_Unwind_Exception* exceptionObject
,
_Unwind_Context* context
)

Parameters

ver
Type: int

version must be 1

actions

bitwise OR of the 4 actions _UA_xxx. _UA_SEARCH_PHASE means return _URC_HANDLER_FOUND if current frame has a handler, _URC_CONTINUE_UNWIND if not. Cannot be used with _UA_CLEANUP_PHASE. _UA_CLEANUP_PHASE means perform cleanup for current frame by calling nested functions and returning _URC_CONTINUE_UNWIND. Or, set up registers and IP for Landing Pad and return _URC_INSTALL_CONTEXT. _UA_HANDLER_FRAME means this frame was the one with the handler in Phase 1, and now it is Phase 2 and the handler must be run. _UA_FORCE_UNWIND means unwinding the stack for longjmp or thread cancellation. Run finally clauses, not catch clauses, finallys must end with call to _Uwind_Resume().

exceptionClass

8 byte value indicating type of thrown exception. If the low 4 bytes are "C++\0", it's a C++ exception.

exceptionObject

language specific exception information

context

opaque type of unwinder state information

Return Value

reason code

See Also

Suggestion Box / Bug Report