rt.eh.ldc_dwarf

Undocumented in source.

Members

Functions

CONTINUE_UNWINDING
_Unwind_Reason_Code CONTINUE_UNWINDING(_Unwind_Exception* unwindHeader, _Unwind_Context* context)

Called when the personality function has found neither a cleanup or handler. To support ARM EABI personality routines, that must also unwind the stack.

__gdc_begin_catch
void* __gdc_begin_catch(_Unwind_Exception* unwindHeader)

Called before starting a catch. Returns the exception object.

__gdc_personality_seh0
EXCEPTION_DISPOSITION __gdc_personality_seh0(void* ms_exc, void* this_frame, void* ms_orig_context, void* ms_disp)

Using a different personality function name causes link failures when trying to mix code using different exception handling models.

_d_eh_enter_catch
void* _d_eh_enter_catch(_Unwind_Exception* unwindHeader)
Undocumented in source. Be warned that the author may not have intended to support it.
_d_eh_personality
_Unwind_Reason_Code _d_eh_personality(_Unwind_State state, _Unwind_Exception* unwindHeader, _Unwind_Context* context)
Undocumented in source. Be warned that the author may not have intended to support it.
_d_eh_swapContext
void* _d_eh_swapContext(void* newContext)

Called when fibers switch contexts.

_d_throw
void _d_throw(Throwable object)

Perform a throw, D style. Throw will unwind through this call, so there better not be any handlers or exception thrown here.

_d_throw_exception
void _d_throw_exception(Throwable object)
Undocumented in source. Be warned that the author may not have intended to support it.
actionTableLookup
int actionTableLookup(_Unwind_Action actions, _Unwind_Exception* unwindHeader, const(ubyte)* actionRecord, const(ubyte)* lsda, _Unwind_Exception_Class exceptionClass, _Unwind_Ptr TTypeBase, const(ubyte)* TType, ubyte TTypeEncoding, bool saw_handler, bool saw_cleanup)

Look up and return the handler index of the classType in Action Table.

gdc_personality
_Unwind_Reason_Code gdc_personality(_Unwind_State state, _Unwind_Exception* unwindHeader, _Unwind_Context* context)

The "personality" function, specific to each language.

gdc_personality
_Unwind_Reason_Code gdc_personality(int iversion, _Unwind_Action actions, _Unwind_Exception_Class exceptionClass, _Unwind_Exception* unwindHeader, _Unwind_Context* context)
Undocumented in source. Be warned that the author may not have intended to support it.
getClassInfo
ClassInfo getClassInfo(_Unwind_Exception* unwindHeader, const(ubyte)* currentLsd)

Look at the chain of inflight exceptions and pick the class type that'll be looked for in catch clauses.

isDependentException
bool isDependentException(_Unwind_Exception_Class c)

Checks for primary or dependent, but not that it is a C++ exception.

isGdcExceptionClass
bool isGdcExceptionClass(_Unwind_Exception_Class c)

Checks for GDC exception class.

isGxxExceptionClass
bool isGxxExceptionClass(_Unwind_Exception_Class c)

Checks for any C++ exception class.

scanLSDA
_Unwind_Reason_Code scanLSDA(const(ubyte)* lsda, _Unwind_Exception_Class exceptionClass, _Unwind_Action actions, _Unwind_Exception* unwindHeader, _Unwind_Context* context, _Unwind_Word cfa, _Unwind_Ptr landingPad, int handler)

Read and extract information from the LSDA (.gcc_except_table section).

Interfaces

CxxTypeInfo
interface CxxTypeInfo

Map to C++ std::type_info's virtual functions from D, being careful to not require linking with libstdc++. So it is given a different name.

Manifest constants

GNU_ARM_EABI_Unwinder
enum GNU_ARM_EABI_Unwinder;
Undocumented in source.
PERSONALITY_FUNCTION
enum PERSONALITY_FUNCTION;
Undocumented in source.
PERSONALITY_FUNCTION
enum PERSONALITY_FUNCTION;
Undocumented in source.
PERSONALITY_FUNCTION
enum PERSONALITY_FUNCTION;
Undocumented in source.
personality_fn_attributes
enum personality_fn_attributes;
Undocumented in source.
personality_fn_attributes
enum personality_fn_attributes;
Undocumented in source.

Structs

CxaExceptionHeader
struct CxaExceptionHeader

Structure of a C++ exception, represented as a C structure. See unwind-cxx.h for the full definition.

ExceptionHeader
struct ExceptionHeader

A D exception object consists of a header, which is a wrapper around an unwind object header with additional D specific information, prefixed by the exception object itself.

Variables

gdcExceptionClass
enum _Unwind_Exception_Class gdcExceptionClass;

Declare all known and handled exception classes. D exceptions -- "GNUCD\0\0\0". C++ exceptions -- "GNUCC++\0" C++ dependent exceptions -- "GNUCC++\x01"

gdcExceptionClass
enum _Unwind_Exception_Class gdcExceptionClass;
Undocumented in source.
gxxDependentExceptionClass
enum _Unwind_Exception_Class gxxDependentExceptionClass;

Declare all known and handled exception classes. D exceptions -- "GNUCD\0\0\0". C++ exceptions -- "GNUCC++\0" C++ dependent exceptions -- "GNUCC++\x01"

gxxDependentExceptionClass
enum _Unwind_Exception_Class gxxDependentExceptionClass;
Undocumented in source.
gxxExceptionClass
enum _Unwind_Exception_Class gxxExceptionClass;

Declare all known and handled exception classes. D exceptions -- "GNUCD\0\0\0". C++ exceptions -- "GNUCC++\0" C++ dependent exceptions -- "GNUCC++\x01"

gxxExceptionClass
enum _Unwind_Exception_Class gxxExceptionClass;
Undocumented in source.

Meta