DBG: Enable/Disable breakpoint groups

git-svn-id: trunk@32788 -
This commit is contained in:
martin 2011-10-09 17:06:44 +00:00
parent 5b3c4cf5f1
commit 064e148c79
3 changed files with 7 additions and 45 deletions

View File

@ -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;

View File

@ -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

View File

@ -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;