ldc.eh_msvc

This module implements the runtime-part of LDC exceptions on Windows, based on the MSVC++ runtime.

Members

Aliases

ImgPtr
alias ImgPtr(T) = T*
Undocumented in source.
PMFN
alias PMFN = ImgPtr!(void function(void*))
Undocumented in source.
terminate_handler
alias terminate_handler = void function()

////////////////////////////////////////////////////////////

Functions

RaiseException
void RaiseException(DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, ULONG_PTR* lpArguments)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
__current_exception
void** __current_exception()

////////////////////////////////////////////////////////////

__current_exception_context
void** __current_exception_context()
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
__processing_throw
int* __processing_throw()
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
_d_createTrace
void _d_createTrace(Throwable t, void* context)
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
_d_eh_enter_catch
Throwable _d_eh_enter_catch(void* ptr, ClassInfo catchType)

////////////////////////////////////////////////////////////

_d_eh_swapContext
void* _d_eh_swapContext(FiberContext* newContext)
Undocumented in source. Be warned that the author may not have intended to support it.
_d_enter_cleanup
bool _d_enter_cleanup(void* ptr)

////////////////////////////////////////////////////////////

_d_isbaseof
int _d_isbaseof(ClassInfo oc, ClassInfo c)
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
_d_leave_cleanup
void _d_leave_cleanup(void* ptr)
Undocumented in source. Be warned that the author may not have intended to support it.
_d_throw_exception
void _d_throw_exception(Throwable throwable)
Undocumented in source. Be warned that the author may not have intended to support it.
chainExceptions
Throwable chainExceptions(Throwable e, Throwable t)
Undocumented in source. Be warned that the author may not have intended to support it.
eh_malloc
ImgPtr!T eh_malloc(size_t size)

////////////////////////////////////////////////////////////

eh_malloc
ImgPtr!T eh_malloc(size_t size)
Undocumented in source. Be warned that the author may not have intended to support it.
fatalerror
void fatalerror(const(char)* format, ...)
Undocumented in source. Be warned that the author may not have intended to support it.
getCatchableType
ImgPtr!CatchableType getCatchableType(TypeInfo_Class ti)
Undocumented in source. Be warned that the author may not have intended to support it.
getThrowInfo
ImgPtr!_ThrowInfo getThrowInfo(TypeInfo_Class ti)
Undocumented in source. Be warned that the author may not have intended to support it.
msvc_eh_init
void msvc_eh_init()

////////////////////////////////////////////////////////////

msvc_eh_terminate
void msvc_eh_terminate()
Undocumented in source. Be warned that the author may not have intended to support it.
set_terminate
terminate_handler set_terminate(terminate_handler new_handler)
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
tlsOldTerminateHandler
auto tlsOldTerminateHandler()
Undocumented in source. Be warned that the author may not have intended to support it.
tlsUncaughtExceptions
size_t tlsUncaughtExceptions()
Undocumented in source. Be warned that the author may not have intended to support it.
toPointer
T* toPointer(ImgPtr!T imgPtr)
Undocumented in source. Be warned that the author may not have intended to support it.
toPointer
T* toPointer(T* imgPtr)

////////////////////////////////////////////////////////////

Manifest constants

CT_ByReferenceOnly
enum CT_ByReferenceOnly;
Undocumented in source.
CT_HasVirtualBase
enum CT_HasVirtualBase;
Undocumented in source.
CT_IsSimpleType
enum CT_IsSimpleType;
Undocumented in source.
CT_IsStdBadAlloc
enum CT_IsStdBadAlloc;
Undocumented in source.
CT_IsWinRTHandle
enum CT_IsWinRTHandle;
Undocumented in source.
EH_MAGIC_NUMBER1
enum EH_MAGIC_NUMBER1;
Undocumented in source.
EXCEPTION_NONCONTINUABLE
enum EXCEPTION_NONCONTINUABLE;
Undocumented in source.
EXCEPTION_UNWINDING
enum EXCEPTION_UNWINDING;
Undocumented in source.
TI_IsConst
enum TI_IsConst;
Undocumented in source.
TI_IsPure
enum TI_IsPure;
Undocumented in source.
TI_IsUnaligned
enum TI_IsUnaligned;
Undocumented in source.
TI_IsVolatile
enum TI_IsVolatile;
Undocumented in source.
TI_IsWinRT
enum TI_IsWinRT;
Undocumented in source.

Static variables

catchableHashtab
HashTab!(TypeInfo_Class, ImgPtr!CatchableType) catchableHashtab;
Undocumented in source.
ehHeap
EHHeap ehHeap;
Undocumented in source.
throwInfoHashtab
HashTab!(TypeInfo_Class, ImgPtr!_ThrowInfo) throwInfoHashtab;
Undocumented in source.
throwInfoMutex
Mutex throwInfoMutex;
Undocumented in source.

Structs

CatchableType
struct CatchableType
Undocumented in source.
CatchableTypeArray
struct CatchableTypeArray
Undocumented in source.
CxxExceptionInfo
struct CxxExceptionInfo
Undocumented in source.
EHHeap
struct EHHeap

Heap dedicated for CatchableTypeArray/CatchableType/TypeDescriptor structs of cached _ThrowInfos. The heap is used to keep these structs tightly together, as they are referenced via 32-bit offsets from a common base. We simply use the heap's start as base (instead of the actual image base), and malloc() returns an offset. The allocated structs are all cached and never released, so this heap can only grow. The offsets remain constant after a grow, so it's only the base which may change.

ExceptionStack
struct ExceptionStack
Undocumented in source.
FiberContext
struct FiberContext
Undocumented in source.
ImgPtr
struct ImgPtr(T)
Undocumented in source.
PMD
struct PMD
Undocumented in source.
TypeDescriptor
struct TypeDescriptor
Undocumented in source.
_ThrowInfo
struct _ThrowInfo
Undocumented in source.

Variables

STATUS_MSC_EXCEPTION
enum int STATUS_MSC_EXCEPTION;
Undocumented in source.
exceptionStack
ExceptionStack exceptionStack;
Undocumented in source.
fiberContext
FiberContext* fiberContext;
Undocumented in source.
old_terminate_handler
terminate_handler old_terminate_handler;
Undocumented in source.

Meta