fix win64 crashes and enable LARGE_WORLDS

This commit is contained in:
552eden
2026-08-05 12:27:03 +03:00
parent 1cb41e61c1
commit b5c3832e07
5 changed files with 50 additions and 13 deletions
+8 -1
View File
@@ -20,9 +20,16 @@ void SetThreadName( DWORD dwThreadID, LPCSTR szThreadName )
info.dwFlags = 0;
#if ( defined _WINDOWS64 | defined _DURANGO )
// 0x406D1388 is a debugger protocol, not a real exception - only a debugger
// can consume it. With nothing attached it terminates the process.
if( !IsDebuggerPresent() )
return;
__try
{
RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD), (ULONG_PTR *)&info );
// count is in ULONG_PTRs, not DWORDs - on x64 the DWORD count made
// RaiseException read past the end of info
RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR *)&info );
}
__except( GetExceptionCode()==0x406D1388 ? EXCEPTION_CONTINUE_EXECUTION : EXCEPTION_EXECUTE_HANDLER )
{