|
|
|
@ -68,7 +68,7 @@ static bool IsStoreInstruction(const void* ptr)
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if defined(WIN32) && defined(CPU_X64)
|
|
|
|
|
#if defined(WIN32) && (defined(CPU_X64) || defined(CPU_AARCH64))
|
|
|
|
|
static PVOID s_veh_handle;
|
|
|
|
|
|
|
|
|
|
static LONG ExceptionHandler(PEXCEPTION_POINTERS exi)
|
|
|
|
@ -190,7 +190,7 @@ bool InstallHandler(void* owner, Callback callback)
|
|
|
|
|
|
|
|
|
|
if (was_empty)
|
|
|
|
|
{
|
|
|
|
|
#if defined(WIN32) && defined(CPU_X64)
|
|
|
|
|
#if defined(WIN32) && (defined(CPU_X64) || defined(CPU_AARCH64))
|
|
|
|
|
s_veh_handle = AddVectoredExceptionHandler(1, ExceptionHandler);
|
|
|
|
|
if (!s_veh_handle)
|
|
|
|
|
{
|
|
|
|
@ -247,7 +247,7 @@ bool RemoveHandler(void* owner)
|
|
|
|
|
|
|
|
|
|
if (m_handlers.empty())
|
|
|
|
|
{
|
|
|
|
|
#if defined(WIN32) && defined(CPU_X64)
|
|
|
|
|
#if defined(WIN32) && (defined(CPU_X64) || defined(CPU_AARCH64))
|
|
|
|
|
RemoveVectoredExceptionHandler(s_veh_handle);
|
|
|
|
|
s_veh_handle = nullptr;
|
|
|
|
|
#elif defined(USE_SIGSEGV)
|
|
|
|
|