From 35fdd5684e546cc0e1ba119c82121f63caef593e Mon Sep 17 00:00:00 2001 From: Matthijs Lavrijsen Date: Sun, 30 Aug 2020 18:47:33 +0200 Subject: [PATCH] Don't call DebugSetProcessKillOnExit if SafeAttach is enabled --- TitanEngine/TitanEngine.Debugger.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/TitanEngine/TitanEngine.Debugger.cpp b/TitanEngine/TitanEngine.Debugger.cpp index c78644d..4193854 100644 --- a/TitanEngine/TitanEngine.Debugger.cpp +++ b/TitanEngine/TitanEngine.Debugger.cpp @@ -553,14 +553,11 @@ __declspec(dllexport) bool TITCALL AttachDebugger(DWORD ProcessId, bool KillOnEx { if(engineEnableDebugPrivilege) EngineSetDebugPrivilege(GetCurrentProcess(), false); - if(KillOnExit) + funcDebugSetProcessKillOnExit = GetProcAddress(GetModuleHandleA("kernel32.dll"), "DebugSetProcessKillOnExit"); + if(funcDebugSetProcessKillOnExit != NULL) { - funcDebugSetProcessKillOnExit = GetProcAddress(GetModuleHandleA("kernel32.dll"), "DebugSetProcessKillOnExit"); - if(funcDebugSetProcessKillOnExit != NULL) - { - myDebugSetProcessKillOnExit = (fDebugSetProcessKillOnExit)(funcDebugSetProcessKillOnExit); - myDebugSetProcessKillOnExit(KillOnExit); - } + myDebugSetProcessKillOnExit = (fDebugSetProcessKillOnExit)(funcDebugSetProcessKillOnExit); + myDebugSetProcessKillOnExit(KillOnExit && !engineSafeAttach ? true : false); } DebugDebuggingDLL = false; DebugAttachedToProcess = true;