mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-27 15:40:40 +02:00
FpDebug: Improve step-commands for threads. Events in other threads, do not need single-stepping
git-svn-id: trunk@63059 -
This commit is contained in:
parent
ec587a8ac1
commit
35706ffaa6
@ -503,10 +503,12 @@ procedure TDbgControllerHiddenBreakStepBaseCmd.DoContinue(AProcess: TDbgProcess;
|
|||||||
var
|
var
|
||||||
r: Boolean;
|
r: Boolean;
|
||||||
begin
|
begin
|
||||||
if (AThread = FThread) then
|
if (AThread <> FThread) then begin
|
||||||
r := NextInstruction.IsReturnInstruction
|
FProcess.Continue(FProcess, AThread, False);
|
||||||
else
|
exit;
|
||||||
r := False;
|
end;
|
||||||
|
|
||||||
|
r := NextInstruction.IsReturnInstruction;
|
||||||
|
|
||||||
InternalContinue(AProcess, AThread);
|
InternalContinue(AProcess, AThread);
|
||||||
if r and
|
if r and
|
||||||
@ -521,7 +523,6 @@ procedure TDbgControllerStepOverInstructionCmd.InternalContinue(
|
|||||||
AProcess: TDbgProcess; AThread: TDbgThread);
|
AProcess: TDbgProcess; AThread: TDbgThread);
|
||||||
begin
|
begin
|
||||||
assert(FProcess=AProcess, 'TDbgControllerStepOverInstructionCmd.DoContinue: FProcess=AProcess');
|
assert(FProcess=AProcess, 'TDbgControllerStepOverInstructionCmd.DoContinue: FProcess=AProcess');
|
||||||
if (AThread = FThread) then
|
|
||||||
CheckForCallAndSetBreak;
|
CheckForCallAndSetBreak;
|
||||||
FProcess.Continue(FProcess, FThread, FHiddenBreakpoint = nil);
|
FProcess.Continue(FProcess, FThread, FHiddenBreakpoint = nil);
|
||||||
end;
|
end;
|
||||||
@ -641,7 +642,7 @@ procedure TDbgControllerStepIntoLineCmd.InternalContinue(AProcess: TDbgProcess;
|
|||||||
AThread: TDbgThread);
|
AThread: TDbgThread);
|
||||||
begin
|
begin
|
||||||
assert(FProcess=AProcess, 'TDbgControllerStepIntoLineCmd.DoContinue: FProcess=AProcess');
|
assert(FProcess=AProcess, 'TDbgControllerStepIntoLineCmd.DoContinue: FProcess=AProcess');
|
||||||
if (FState = siSteppingCurrent) and (AThread = FThread) then
|
if (FState = siSteppingCurrent) then
|
||||||
begin
|
begin
|
||||||
if CheckForCallAndSetBreak then begin
|
if CheckForCallAndSetBreak then begin
|
||||||
FState := siSteppingIn;
|
FState := siSteppingIn;
|
||||||
@ -720,7 +721,6 @@ procedure TDbgControllerStepOverLineCmd.InternalContinue(AProcess: TDbgProcess;
|
|||||||
AThread: TDbgThread);
|
AThread: TDbgThread);
|
||||||
begin
|
begin
|
||||||
assert(FProcess=AProcess, 'TDbgControllerStepOverLineCmd.DoContinue: FProcess=AProcess');
|
assert(FProcess=AProcess, 'TDbgControllerStepOverLineCmd.DoContinue: FProcess=AProcess');
|
||||||
if (AThread = FThread) then
|
|
||||||
CheckForCallAndSetBreak;
|
CheckForCallAndSetBreak;
|
||||||
|
|
||||||
if FHiddenBreakpoint = nil then
|
if FHiddenBreakpoint = nil then
|
||||||
|
Loading…
Reference in New Issue
Block a user