mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-13 11:19:22 +02:00
FpDebug: Windows, fixed Process.Continue with single step request
git-svn-id: trunk@61866 -
This commit is contained in:
parent
cae3f56d05
commit
c9beb9dffe
@ -621,11 +621,15 @@ debugln(['TDbgWinProcess.Continue ',SingleStep]);
|
|||||||
if HasInsertedBreakInstructionAtLocation(EventThread.GetInstructionPointerRegisterValue) then begin
|
if HasInsertedBreakInstructionAtLocation(EventThread.GetInstructionPointerRegisterValue) then begin
|
||||||
debugln(['## skip brkpoint ',AThread= EventThread, ' iss ',EventThread.NextIsSingleStep]);
|
debugln(['## skip brkpoint ',AThread= EventThread, ' iss ',EventThread.NextIsSingleStep]);
|
||||||
TDbgWinThread(EventThread).SetSingleStepOverBreakPoint;
|
TDbgWinThread(EventThread).SetSingleStepOverBreakPoint;
|
||||||
|
|
||||||
for t in FThreadMap do
|
for t in FThreadMap do
|
||||||
TDbgWinThread(t).SuspendForStepOverBreakPoint;
|
TDbgWinThread(t).SuspendForStepOverBreakPoint;
|
||||||
end
|
end
|
||||||
else begin
|
else begin
|
||||||
// EventThread does not need to skip a breakpoint;
|
// EventThread does not need to skip a breakpoint;
|
||||||
|
if (EventThread = AThread) and (SingleStep) then
|
||||||
|
TDbgWinThread(EventThread).SetSingleStep;
|
||||||
|
|
||||||
b := False;
|
b := False;
|
||||||
for t in FThreadMap do
|
for t in FThreadMap do
|
||||||
if TDbgWinThread(t).FIsSkippingBreakPoint then begin
|
if TDbgWinThread(t).FIsSkippingBreakPoint then begin
|
||||||
@ -642,7 +646,8 @@ debugln(['## skip brkpoint (others only) ',AThread= EventThread, ' iss ',EventT
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
AThread := nil; // Already handled, might be suspended
|
if (AThread = EventThread) or (TDbgWinThread(AThread).FIsSuspended) then
|
||||||
|
AThread := nil; // Already handled, or suspended
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if assigned(AThread) then
|
if assigned(AThread) then
|
||||||
|
Loading…
Reference in New Issue
Block a user