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.

Meta

License

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

Authors

Walter Bright