Process Stub: Release file handle

Task-number: QTCREATORBUG-5382
Merge-request: 388
Reviewed-by: ossi

Change-Id: Ie80fdbe2eadb55d3b5684ebc7a79162317d1a36b
This commit is contained in:
Orgad Shaneh
2011-09-15 12:16:30 +02:00
committed by Oswald Buddenhagen
parent 3b48ac3344
commit ee5a52da61

View File

@@ -118,6 +118,7 @@ int main()
PROCESS_INFORMATION pi; PROCESS_INFORMATION pi;
DEBUG_EVENT dbev; DEBUG_EVENT dbev;
enum RunMode mode = Run; enum RunMode mode = Run;
HANDLE image = NULL;
argv = CommandLineToArgvW(GetCommandLine(), &argc); argv = CommandLineToArgvW(GetCommandLine(), &argc);
@@ -196,6 +197,8 @@ int main()
do { do {
if (!WaitForDebugEvent (&dbev, INFINITE)) if (!WaitForDebugEvent (&dbev, INFINITE))
systemError("Cannot fetch debug event, error %d\n"); systemError("Cannot fetch debug event, error %d\n");
if (dbev.dwDebugEventCode == CREATE_PROCESS_DEBUG_EVENT)
image = dbev.u.CreateProcessInfo.hFile;
if (dbev.dwDebugEventCode == EXCEPTION_DEBUG_EVENT) { if (dbev.dwDebugEventCode == EXCEPTION_DEBUG_EVENT) {
/* The first exception to be delivered is a trap /* The first exception to be delivered is a trap
which indicates completion of startup. */ which indicates completion of startup. */
@@ -207,6 +210,8 @@ int main()
} while (dbev.dwDebugEventCode != EXCEPTION_DEBUG_EVENT); } while (dbev.dwDebugEventCode != EXCEPTION_DEBUG_EVENT);
if (!DebugActiveProcessStop(dbev.dwProcessId)) if (!DebugActiveProcessStop(dbev.dwProcessId))
systemError("Cannot detach from debugee, error %d\n"); systemError("Cannot detach from debugee, error %d\n");
if (image)
CloseHandle(image);
} }
SetConsoleCtrlHandler(ctrlHandler, TRUE); SetConsoleCtrlHandler(ctrlHandler, TRUE);
@@ -216,6 +221,8 @@ int main()
if (WaitForSingleObject(pi.hProcess, INFINITE) == WAIT_FAILED) if (WaitForSingleObject(pi.hProcess, INFINITE) == WAIT_FAILED)
systemError("Wait for debugee failed, error %d\n"); systemError("Wait for debugee failed, error %d\n");
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
doExit(0); doExit(0);
return 0; return 0;
} }