diff --git a/debugger/breakpropertydlg.pas b/debugger/breakpropertydlg.pas index bb71be89d7..725cdc8654 100644 --- a/debugger/breakpropertydlg.pas +++ b/debugger/breakpropertydlg.pas @@ -93,41 +93,11 @@ end; procedure TBreakPropertyDlg.chkDisableGroupsChange(Sender: TObject); begin - {$IFdef MSWindows} - if (not FUpdatingInfo) and (not EnvironmentOptions.DebuggerConfig.WarnedAboutBreakGroup) - then begin - if MessageDlg('Beta Feature', 'This feature requires special setup, See DEBUG-README.TXT. Continue?', - mtConfirmation, mbYesNo, 0) - <> mrYes - then begin - FUpdatingInfo := True; - chkDisableGroups.Checked := False; - FUpdatingInfo := False; - exit; - end; - EnvironmentOptions.DebuggerConfig.WarnedAboutBreakGroup := True; - end; - {$ENDIF} edtDisableGroups.Enabled := chkDisableGroups.Checked; end; procedure TBreakPropertyDlg.chkEnableGroupsChange(Sender: TObject); begin - {$IFdef MSWindows} - if (not FUpdatingInfo) and (not EnvironmentOptions.DebuggerConfig.WarnedAboutBreakGroup) - then begin - if MessageDlg('Beta Feature', 'This feature requires special setup, See DEBUG-README.TXT. Continue?', - mtConfirmation, mbYesNo, 0) - <> mrYes - then begin - FUpdatingInfo := True; - chkEnableGroups.Checked := False; - FUpdatingInfo := False; - exit; - end; - EnvironmentOptions.DebuggerConfig.WarnedAboutBreakGroup := True; - end; - {$ENDIF} edtEnableGroups.Enabled := chkEnableGroups.Checked; end; diff --git a/debugger/debugger.pp b/debugger/debugger.pp index 4c0c427957..ab214ceed5 100644 --- a/debugger/debugger.pp +++ b/debugger/debugger.pp @@ -197,9 +197,7 @@ type private FDebuggerClass: String; FTDebuggerWatchesDlgConfig: TDebuggerWatchesDlgConfig; - FWarnedAboutBreakGroup: Boolean; public - procedure Init; override; procedure Load; override; procedure Save; override; public @@ -208,9 +206,6 @@ type property DebuggerClass: String read FDebuggerClass write FDebuggerClass; property DlgWatchesConfig: TDebuggerWatchesDlgConfig read FTDebuggerWatchesDlgConfig; published - {$IFdef MSWindows} - property WarnedAboutBreakGroup: Boolean read FWarnedAboutBreakGroup write FWarnedAboutBreakGroup; - {$ENDIF} end; { TFreeNotifyingObject } @@ -3103,14 +3098,6 @@ end; { TDebuggerConfigStore } -procedure TDebuggerConfigStore.Init; -begin - inherited Init; - {$IFdef MSWindows} - WarnedAboutBreakGroup := False; - {$ENDIF} -end; - procedure TDebuggerConfigStore.Load; const OLD_GDB_DBG_NAME = 'GNU debugger (gdb)'; @@ -6699,8 +6686,6 @@ begin if bpaLogCallStack in Actions then FMaster.DoLogCallStack(FLogCallStackLimit); // SnapShot is taken in TDebugManager.DebuggerChangeState - if Actions * [bpaDisableGroup, bpaEnableGroup] <> [] - then sleep(2500); if bpaEnableGroup in Actions then EnableGroups; if bpaDisableGroup in Actions diff --git a/debugger/gdbmidebugger.pp b/debugger/gdbmidebugger.pp index a944c19564..cd749b152c 100644 --- a/debugger/gdbmidebugger.pp +++ b/debugger/gdbmidebugger.pp @@ -319,6 +319,7 @@ type FDebuggerFlags: TGDBMIDebuggerFlags; FSourceNames: TStringList; // Objects[] -> TMap[Integer|Integer] -> TDbgPtr FReleaseLock: Integer; + FInProcessStopped: Boolean; // paused, but maybe state run // Internal Current values FCurrentStackFrame, FCurrentThreadId: Integer; // User set values @@ -4607,6 +4608,8 @@ begin Therefore all calls to ExecuteCommand (gdb cmd) must be wrapped in QueueExecuteLock *) Result := False; + FTheDebugger.FInProcessStopped := True; // paused, but maybe state run + List := TGDBMINameValueList.Create(AParams); List2 := nil; @@ -4733,6 +4736,7 @@ begin ProcessFrame(List.Values['frame']); end; finally + FTheDebugger.FInProcessStopped := False; List.Free; list2.Free; end; @@ -5834,6 +5838,7 @@ begin FThreadGroups := TStringList.Create; FTypeRequestCache := TGDBPTypeRequestCache.Create; FMaxLineForUnitCache := TStringList.Create; + FInProcessStopped := False; {$IFdef MSWindows} @@ -6585,6 +6590,8 @@ end; function TGDBMIDebugger.GDBPause(const AInternal: Boolean): Boolean; begin + if FInProcessStopped then exit; + // Check if we already issued a break if FPauseWaitState = pwsNone then InterruptTarget;