IDE, Debugger: Set break/watchpoint after properties are confirmed. This used to set the watchpoint before the user confirmed, and then updated it.

git-svn-id: trunk@61964 -
This commit is contained in:
martin 2019-10-03 18:38:05 +00:00
parent 063096d568
commit cf8b7f94fe
3 changed files with 39 additions and 23 deletions

View File

@ -507,11 +507,13 @@ var
begin
SrcEdit := SourceEditorManager.GetActiveSE;
if SrcEdit <> nil then
NewBreakpoint := BreakPoints.Add(SrcEdit.FileName, SrcEdit.CurrentCursorYLine)
NewBreakpoint := BreakPoints.Add(SrcEdit.FileName, SrcEdit.CurrentCursorYLine, True)
else
NewBreakpoint := BreakPoints.Add('', 0);
if DebugBoss.ShowBreakPointProperties(NewBreakpoint) = mrOk then
UpdateAll
NewBreakpoint := BreakPoints.Add('', 0, True);
if DebugBoss.ShowBreakPointProperties(NewBreakpoint) = mrOk then begin
NewBreakpoint.EndUpdate;
UpdateAll;
end
else
ReleaseRefAndNil(NewBreakpoint);
end;
@ -520,9 +522,11 @@ procedure TBreakPointsDlg.actAddWatchPointExecute(Sender: TObject);
var
NewBreakpoint: TIDEBreakPoint;
begin
NewBreakpoint := BreakPoints.Add('', wpsGlobal, wpkWrite);
if DebugBoss.ShowBreakPointProperties(NewBreakpoint) = mrOk then
UpdateAll
NewBreakpoint := BreakPoints.Add('', wpsGlobal, wpkWrite, True);
if DebugBoss.ShowBreakPointProperties(NewBreakpoint) = mrOk then begin
NewBreakpoint.EndUpdate;
UpdateAll;
end
else
ReleaseRefAndNil(NewBreakpoint);
end;
@ -531,9 +535,11 @@ procedure TBreakPointsDlg.actAddAddressBPExecute(Sender: TObject);
var
NewBreakpoint: TIDEBreakPoint;
begin
NewBreakpoint := BreakPoints.Add(0);
if DebugBoss.ShowBreakPointProperties(NewBreakpoint) = mrOk then
UpdateAll
NewBreakpoint := BreakPoints.Add(0, True);
if DebugBoss.ShowBreakPointProperties(NewBreakpoint) = mrOk then begin
NewBreakpoint.EndUpdate;
UpdateAll;
end
else
ReleaseRefAndNil(NewBreakpoint);
end;

View File

@ -555,9 +555,11 @@ var
begin
Watch := GetSelected;
if Watch = nil then Exit;
NewBreakpoint := BreakPoints.Add(Watch.Expression, wpsGlobal, wpkWrite);
NewBreakpoint := BreakPoints.Add(Watch.Expression, wpsGlobal, wpkWrite, True);
if DebugBoss.ShowBreakPointProperties(NewBreakpoint) <> mrOk then
ReleaseRefAndNil(NewBreakpoint);
ReleaseRefAndNil(NewBreakpoint)
else
NewBreakpoint.EndUpdate;
end;
procedure TWatchesDlg.actCopyNameExecute(Sender: TObject);

View File

@ -982,9 +982,11 @@ procedure TDebugManager.mnuAddBpAddress(Sender: TObject);
var
NewBreakpoint: TIDEBreakPoint;
begin
NewBreakpoint := BreakPoints.Add(0);
NewBreakpoint := BreakPoints.Add(0, True);
if ShowBreakPointProperties(NewBreakpoint) <> mrOk then
ReleaseRefAndNil(NewBreakpoint);
ReleaseRefAndNil(NewBreakpoint)
else
NewBreakpoint.EndUpdate;
end;
procedure TDebugManager.mnuAddBpSource(Sender: TObject);
@ -994,20 +996,24 @@ var
begin
SrcEdit := SourceEditorManager.GetActiveSE;
if SrcEdit <> nil then
NewBreakpoint := BreakPoints.Add(SrcEdit.FileName, SrcEdit.CurrentCursorYLine)
NewBreakpoint := BreakPoints.Add(SrcEdit.FileName, SrcEdit.CurrentCursorYLine, True)
else
NewBreakpoint := BreakPoints.Add('', 0);
NewBreakpoint := BreakPoints.Add('', 0, True);
if DebugBoss.ShowBreakPointProperties(NewBreakpoint) <> mrOk then
ReleaseRefAndNil(NewBreakpoint);
ReleaseRefAndNil(NewBreakpoint)
else
NewBreakpoint.EndUpdate;
end;
procedure TDebugManager.mnuAddBpData(Sender: TObject);
var
NewBreakpoint: TIDEBreakPoint;
begin
NewBreakpoint := BreakPoints.Add('', wpsGlobal, wpkWrite);
if ShowBreakPointProperties(NewBreakpoint) = mrOk then
ViewDebugDialog(ddtBreakpoints, False)
NewBreakpoint := BreakPoints.Add('', wpsGlobal, wpkWrite, True);
if ShowBreakPointProperties(NewBreakpoint) = mrOk then begin
NewBreakpoint.EndUpdate;
ViewDebugDialog(ddtBreakpoints, False);
end
else
ReleaseRefAndNil(NewBreakpoint);
end;
@ -1030,9 +1036,11 @@ begin
if (WatchVar <> '') and SE.EditorComponent.Focused then
begin
// TODO: find existing?
NewBreakpoint := BreakPoints.Add(WatchVar, wpsGlobal, wpkWrite);
if ShowBreakPointProperties(NewBreakpoint) = mrOk then
ViewDebugDialog(ddtBreakpoints, False)
NewBreakpoint := BreakPoints.Add(WatchVar, wpsGlobal, wpkWrite, True);
if ShowBreakPointProperties(NewBreakpoint) = mrOk then begin
NewBreakpoint.EndUpdate;
ViewDebugDialog(ddtBreakpoints, False);
end
else
NewBreakpoint.ReleaseReference;
exit;