From 4be5e94e3ef91ab39018282a06fd144dd584dae9 Mon Sep 17 00:00:00 2001 From: martin Date: Sat, 14 Sep 2019 14:27:44 +0000 Subject: [PATCH] FpDebug: Linux, do not modify running processes (in case of deInternalContinue, some processes may not be paused) git-svn-id: trunk@61875 - --- components/fpdebug/fpdbglinuxclasses.pas | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/fpdebug/fpdbglinuxclasses.pas b/components/fpdebug/fpdbglinuxclasses.pas index 3a7d7cacfb..b3bd442e8b 100644 --- a/components/fpdebug/fpdbglinuxclasses.pas +++ b/components/fpdebug/fpdbglinuxclasses.pas @@ -1040,7 +1040,8 @@ begin exit; end; - AThread.NextIsSingleStep:=SingleStep; + if TDbgLinuxThread(AThread).FIsPaused then // in case of deInternal, it may not be paused and can be ignored + AThread.NextIsSingleStep:=SingleStep; // check other threads if they need a singlestep for TDbgThread(ThreadToContinue) in FThreadMap do @@ -1077,6 +1078,7 @@ begin end; end; + if TDbgLinuxThread(AThread).FIsPaused then // in case of deInternal, it may not be paused and can be ignored if HasInsertedBreakInstructionAtLocation(AThread.GetInstructionPointerRegisterValue) then begin TempRemoveBreakInstructionCode(AThread.GetInstructionPointerRegisterValue); TDbgLinuxThread(AThread).FIsSteppingBreakPoint := True; @@ -1108,6 +1110,7 @@ begin end; end; + if TDbgLinuxThread(AThread).FIsPaused then // in case of deInternal, it may not be paused and can be ignored if not FIsTerminating then begin fpseterrno(0); //AThread.BeforeContinue;