From a33608de2e083179a75ef4776b64b31fb8a7b310 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 6 Dec 2018 18:03:18 +0000 Subject: [PATCH] FpDebug: Windows, fix leaking filehandles (again), see r59552 #122dfbd2ce / needed until forked processes are handled. git-svn-id: trunk@59741 - --- components/fpdebug/fpdbgwinclasses.pas | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/components/fpdebug/fpdbgwinclasses.pas b/components/fpdebug/fpdbgwinclasses.pas index d9f28d48a3..a73f9711c8 100644 --- a/components/fpdebug/fpdbgwinclasses.pas +++ b/components/fpdebug/fpdbgwinclasses.pas @@ -538,6 +538,15 @@ begin result := Windows.WaitForDebugEvent(MDebugEvent, INFINITE); ProcessIdentifier:=MDebugEvent.dwProcessId; ThreadIdentifier:=MDebugEvent.dwThreadId; + + // Should be done in AnalyseDebugEvent, but that is not called for forked processes + if (MDebugEvent.dwDebugEventCode = CREATE_PROCESS_DEBUG_EVENT) and + (MDebugEvent.dwProcessId <> ProcessID) and + (MDebugEvent.CreateProcessInfo.hFile <> 0) + then begin + CloseHandle(MDebugEvent.CreateProcessInfo.hFile); + MDebugEvent.CreateProcessInfo.hFile := 0; + end; end; function TDbgWinProcess.AnalyseDebugEvent(AThread: TDbgThread): TFPDEvent;