diff --git a/debugger/debugger.pp b/debugger/debugger.pp index d95d502d9d..45fe7a49d0 100644 --- a/debugger/debugger.pp +++ b/debugger/debugger.pp @@ -2979,7 +2979,7 @@ const {dsNone } [], {dsIdle } [dcEnvironment], {dsStop } [dcRun, dcStepOver, dcStepInto, dcStepOverInstr, dcStepIntoInstr, - dcStepOut, dcRunTo, dcJumpto, dcAttach, dcBreak, dcWatch, dcEvaluate, dcEnvironment, + dcAttach, dcBreak, dcWatch, dcEvaluate, dcEnvironment, dcSendConsoleInput], {dsPause} [dcRun, dcStop, dcStepOver, dcStepInto, dcStepOverInstr, dcStepIntoInstr, dcStepOut, dcRunTo, dcJumpto, dcDetach, dcBreak, dcWatch, dcLocal, dcEvaluate, dcModify, diff --git a/debugger/gdbmidebugger.pp b/debugger/gdbmidebugger.pp index ef5cdc58a5..f4574b5e7e 100644 --- a/debugger/gdbmidebugger.pp +++ b/debugger/gdbmidebugger.pp @@ -7369,7 +7369,7 @@ begin Result := False; case State of dsStop: begin - Result := StartDebugging(ectRunTo, [ASource, ALine]); + Result := False; end; dsPause: begin CancelBeforeRun; @@ -7520,7 +7520,7 @@ begin Result := False; case State of dsStop: begin - Result := StartDebugging; + Result := False; end; dsPause: begin CancelBeforeRun; diff --git a/ide/debugmanager.pas b/ide/debugmanager.pas index d091271516..bd01ecb62e 100644 --- a/ide/debugmanager.pas +++ b/ide/debugmanager.pas @@ -1818,8 +1818,8 @@ begin and (dcStepOut in FDebugger.Commands) and (FDebugger.State = dsPause); itmRunMenuStepOut.Enabled := StepOutSpeedButton.Enabled; // Run to cursor - itmRunMenuRunToCursor.Enabled := CanRun and (not DebuggerIsValid - or (dcRunTo in FDebugger.Commands)); + itmRunMenuRunToCursor.Enabled := CanRun and DebuggerIsValid + and (dcRunTo in FDebugger.Commands); // Stop itmRunMenuStop.Enabled := CanRun and DebuggerIsValid; StopSpeedButton.Enabled := itmRunMenuStop.Enabled; @@ -2352,6 +2352,12 @@ end; function TDebugManager.DoStepOutProject: TModalResult; begin + if (FDebugger = nil) or not(dcRunTo in FDebugger.Commands) + then begin + Result := mrAbort; + Exit; + end; + if (MainIDE.DoInitProjectRun <> mrOK) or (MainIDE.ToolStatus <> itDebugger) or (FDebugger = nil) or Destroying @@ -2699,6 +2705,12 @@ begin {$ifdef VerboseDebugger} DebugLn('TDebugManager.DoRunToCursor A'); {$endif} + if (FDebugger = nil) or not(dcRunTo in FDebugger.Commands) + then begin + Result := mrAbort; + Exit; + end; + if (MainIDE.DoInitProjectRun <> mrOK) or (MainIDE.ToolStatus <> itDebugger) or (FDebugger = nil) or Destroying