rt.deh_win32

Implementation of exception handling support routines for Win32.

Members

Functions

_d_eh_swapContext
void* _d_eh_swapContext(void* newContext)

Switch out inflightExceptionList on fiber context switches.

_d_exception_filter
int _d_exception_filter(EXCEPTION_POINTERS* eptrs, int retval, Object* exceptionObject)

Exception filter for use in __try..__except block surrounding call to Dmain()

_d_framehandler
EXCEPTION_DISPOSITION _d_framehandler(EXCEPTION_RECORD* exceptionRecord, DEstablisherFrame* frame, CONTEXT* context, void* dispatcherContext)

The frame handler, this is called for each frame that has been registered in the OS except_list. Input: EAX the handler table for the frame

_d_local_unwind
void _d_local_unwind(DHandlerTable* handler_table, DEstablisherFrame* frame, int stop_index, LanguageSpecificHandler collisionHandler)

Call finally blocks in the current stack frame until stop_index. This is roughly equivalent to _local_unwind() for C in \src\win32\ehsup.c

_d_local_unwind2
void _d_local_unwind2()

external version of the unwinder This is used for 'goto' or 'return', to run any finally blocks which were skipped.

_d_monitor_epilog
void _d_monitor_epilog(void* x, void* y, Object h)
_d_monitor_handler
EXCEPTION_DISPOSITION _d_monitor_handler(EXCEPTION_RECORD* exceptionRecord, DEstablisherFrame* frame, CONTEXT* context, void* dispatcherContext)

The frame handler, this is called for each frame that has been registered in the OS except_list. Input: EAX the handler table for the frame

_d_monitor_prolog
void _d_monitor_prolog(void* x, void* y, Object h)
_d_throwc
void _d_throwc(Throwable h)

The compiler converts: throw h; into a call to: _d_throwc(h);

_d_translate_se_to_d_exception
Throwable _d_translate_se_to_d_exception(EXCEPTION_RECORD* exceptionRecord, CONTEXT* context)

Converts a Windows Structured Exception code to a D Throwable Object.

skipCollateralExceptions
EXCEPTION_RECORD* skipCollateralExceptions(EXCEPTION_RECORD* n)

Find the first non-collateral exception in the list. If the last entry in the list has the EXCEPTION_COLLATERAL bit set, it means that this fragment will collide with the top exception in the inflightException list.

throwImpl
void throwImpl(Throwable h)

Throw a D instance of Throwable.

Meta

License

Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)

Authors

Walter Bright

Suggestion Box / Bug Report