FpDebug: Windows, fixed Process.Continue with single step request

git-svn-id: trunk@61866 -
This commit is contained in:
martin 2019-09-12 15:33:12 +00:00
parent cae3f56d05
commit c9beb9dffe

View File

@ -621,11 +621,15 @@ debugln(['TDbgWinProcess.Continue ',SingleStep]);
if HasInsertedBreakInstructionAtLocation(EventThread.GetInstructionPointerRegisterValue) then begin
debugln(['## skip brkpoint ',AThread= EventThread, ' iss ',EventThread.NextIsSingleStep]);
TDbgWinThread(EventThread).SetSingleStepOverBreakPoint;
for t in FThreadMap do
TDbgWinThread(t).SuspendForStepOverBreakPoint;
end
else begin
// EventThread does not need to skip a breakpoint;
if (EventThread = AThread) and (SingleStep) then
TDbgWinThread(EventThread).SetSingleStep;
b := False;
for t in FThreadMap do
if TDbgWinThread(t).FIsSkippingBreakPoint then begin
@ -642,7 +646,8 @@ debugln(['## skip brkpoint (others only) ',AThread= EventThread, ' iss ',EventT
end;
end;
AThread := nil; // Already handled, might be suspended
if (AThread = EventThread) or (TDbgWinThread(AThread).FIsSuspended) then
AThread := nil; // Already handled, or suspended
end;
if assigned(AThread) then