extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) { switch(reason) { case DLL_PROCESS_ATTACH: #ifdef DEBUGGER_WAIT_DIALOG { char disable_debugger_wait_dialog[] = "0"; GetEnvironmentVariable("SWIFTSHADER_DISABLE_DEBUGGER_WAIT_DIALOG", disable_debugger_wait_dialog, sizeof(disable_debugger_wait_dialog)); if(disable_debugger_wait_dialog[0] != '1') { WaitForDebugger(instance); } } #endif break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: default: break; } return TRUE; }
BootLoader::BootLoader() { InitCommonControls(); #if 0 WaitForDebugger(); #endif m_pUICore = NULL; }
BootLoader::BootLoader() { m_MDumpHandle.showMessageBox(true); InitCommonControls(); #if 0 WaitForDebugger(); #endif m_pUICore = nullptr; }
extern "C" int __stdcall DnxMain(int argc, wchar_t* argv[]) #endif { // Check for the debug flag before doing anything else WaitForDebugger(argc - 1, &(argv[1])); size_t nExpandedArgc = 0; dnx::char_t** ppszExpandedArgv = nullptr; auto expanded = ExpandCommandLineArguments(argc - 1, &(argv[1]), nExpandedArgc, ppszExpandedArgv); auto trace_writer = dnx::trace_writer{ IsTracingEnabled() }; if (!expanded) { return CallApplicationProcessMain(argc - 1, &argv[1], trace_writer); } auto exitCode = CallApplicationProcessMain(static_cast<int>(nExpandedArgc), ppszExpandedArgv, trace_writer); FreeExpandedCommandLineArguments(nExpandedArgc, ppszExpandedArgv); return exitCode; }
void SKSE_Initialize(void) { if(isInit) return; isInit = true; gLog.OpenRelative(CSIDL_MYDOCUMENTS, kLogPath); #ifndef _DEBUG __try { #endif FILETIME now; GetSystemTimeAsFileTime(&now); #if RUNTIME _MESSAGE("SKSE runtime: initialize (version = %d.%d.%d %08X %08X%08X, os = %s)", SKSE_VERSION_INTEGER, SKSE_VERSION_INTEGER_MINOR, SKSE_VERSION_INTEGER_BETA, RUNTIME_VERSION, now.dwHighDateTime, now.dwLowDateTime, GetOSInfoStr().c_str()); #else _MESSAGE("SKSE editor: initialize (version = %d.%d.%d %08X %08X%08X, os = %s)", SKSE_VERSION_INTEGER, SKSE_VERSION_INTEGER_MINOR, SKSE_VERSION_INTEGER_BETA, EDITOR_VERSION, now.dwHighDateTime, now.dwLowDateTime, GetOSInfoStr().c_str()); #endif _MESSAGE("imagebase = %08X", GetModuleHandle(NULL)); #ifdef _DEBUG SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS); WaitForDebugger(); #endif // Commands_Dump(); Hooks_Debug_Init(); Hooks_ObScript_Init(); Hooks_Papyrus_Init(); Hooks_NetImmerse_Init(); Hooks_Threads_Init(); Hooks_Handlers_Init(); g_pluginManager.Init(); Hooks_Debug_Commit(); Hooks_Threads_Commit(); Hooks_Handlers_Commit(); Hooks_Scaleform_Commit(); Hooks_Gameplay_Commit(); Hooks_ObScript_Commit(); Hooks_Papyrus_Commit(); Hooks_UI_Commit(); Hooks_Camera_Commit(); Hooks_NetImmerse_Commit(); Hooks_Data_Commit(); Hooks_SaveLoad_Commit(); Init_CoreSerialization_Callbacks(); Hooks_DirectInput_Commit(); Hooks_Event_Commit(); Hooks_Diagnostics_Commit(); FlushInstructionCache(GetCurrentProcess(), NULL, 0); #ifndef _DEBUG } __except(EXCEPTION_EXECUTE_HANDLER) { _ERROR("exception"); } #endif _MESSAGE("init complete"); }
void SKSE64_Initialize(void) { if(isInit) return; isInit = true; gLog.OpenRelative(CSIDL_MYDOCUMENTS, "\\My Games\\Skyrim Special Edition\\SKSE\\skse64.log"); #ifndef _DEBUG __try { #endif FILETIME now; GetSystemTimeAsFileTime(&now); _MESSAGE("SKSE64 runtime: initialize (version = %d.%d.%d %08X %08X%08X, os = %s)", SKSE_VERSION_INTEGER, SKSE_VERSION_INTEGER_MINOR, SKSE_VERSION_INTEGER_BETA, RUNTIME_VERSION, now.dwHighDateTime, now.dwLowDateTime, GetOSInfoStr().c_str()); _MESSAGE("imagebase = %016I64X", GetModuleHandle(NULL)); _MESSAGE("reloc mgr imagebase = %016I64X", RelocationManager::s_baseAddr); #ifdef _DEBUG SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS); WaitForDebugger(); #endif if(!g_branchTrampoline.Create(1024 * 64)) { _ERROR("couldn't create branch trampoline. this is fatal. skipping remainder of init process."); return; } if(!g_localTrampoline.Create(1024 * 64, g_moduleHandle)) { _ERROR("couldn't create codegen buffer. this is fatal. skipping remainder of init process."); return; } // Add Hooks_XXX_Init calls here Hooks_Debug_Init(); Hooks_ObScript_Init(); Hooks_Papyrus_Init(); Hooks_NetImmerse_Init(); Hooks_Threads_Init(); Hooks_Handlers_Init(); g_pluginManager.Init(); // Add Hooks_XXX_Commit calls here in the same order Hooks_Debug_Commit(); Hooks_ObScript_Commit(); Hooks_Papyrus_Commit(); Hooks_UI_Commit(); Hooks_Camera_Commit(); Hooks_NetImmerse_Commit(); Hooks_Threads_Commit(); Hooks_Handlers_Commit(); Hooks_Scaleform_Commit(); Hooks_Gameplay_Commit(); Hooks_Event_Commit(); Hooks_SaveLoad_Commit(); Hooks_Data_Commit(); Init_CoreSerialization_Callbacks(); Hooks_DirectInput_Commit(); FlushInstructionCache(GetCurrentProcess(), NULL, 0); #ifndef _DEBUG } __except(EXCEPTION_EXECUTE_HANDLER) { _ERROR("exception thrown during startup"); } #endif _MESSAGE("init complete"); }
/*++ DbInit Initializes the procedure table and database connection pool. Arguments: getProc - Pointer to ioFTPD's GetProc function. Return Values: If the function succeeds, the return value is nonzero (true). If the function fails, the return value is zero (false). --*/ BOOL FCALL DbInit(Io_GetProc *getProc) { DWORD result; #if 0 // Wait for debugger to be attached before proceeding WaitForDebugger(); #endif TRACE("refCount=%d", refCount); // Only initialize the database pool once if (InterlockedIncrement(&refCount) > 1) { TRACE("Already initialized, returning."); return TRUE; } // Initialize procedure table result = ProcTableInit(getProc); if (result != ERROR_SUCCESS) { TRACE("Unable to initialize procedure table (error %lu).", result); return FALSE; } // Initialize configuration structures result = ConfigInit(); if (result != ERROR_SUCCESS) { TRACE("Unable to initialize configuration system (error %lu).", result); return FALSE; } // Initialize logging system result = LogInit(); if (result != ERROR_SUCCESS) { TRACE("Unable to initialize logging system (error %lu).", result); return FALSE; } // // Now that the logging system has been initialized, the LOG_* macros are // available for use. Prior to this point, the TRACE macro must be used. // // Load configuration options result = ConfigLoad(); if (result != ERROR_SUCCESS) { TRACE("Unable to load configuration (error %lu).", result); DbFinalize(); return FALSE; } // Create connection pool result = PoolCreate(&dbPool, dbConfigPool.minimum, dbConfigPool.average, dbConfigPool.maximum, dbConfigPool.timeoutMili, ConnectionOpen, ConnectionCheck, ConnectionClose, NULL); if (result != ERROR_SUCCESS) { LOG_ERROR("Unable to initialize connection pool (error %lu).", result); DbFinalize(); return FALSE; } LOG_INFO("nxMyDB v%s loaded, using MySQL Client Library v%s.", STRINGIFY(VERSION), mysql_get_client_info()); return TRUE; }