我尝试在Exit语句处设置断点,如下所示:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
I := 5;
if I = 5 then
Exit;
end;
但是当程序启动时,断点会变成一个红色的十字,表示它不可用。为什么?我正在使用项目的“Debug”版本并使用“Run”按钮来调试该项目。
我尝试在Exit语句处设置断点,如下所示:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
I := 5;
if I = 5 then
Exit;
end;
与 HeartWare 建议的使用条件断点相反(性能受影响,具体取决于代码的执行频率),您可以将代码更改为:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
I := 5;
if I = 5 then begin
asm nop end; // <== put breakpoint here
Exit;
end;
end;
Exit
、Break
和Continue
的流程控制“过程”上设置断点。它们不是真正的过程,而更像是编译器特殊处理的关键字。但是,您可以在此类“过程”上面的下一行适当位置设置断点。[我怀疑Embarcadero可以选择实现这个功能,但可能并不完全简单,并且需要可能并不那么严重。] - Andreas RejbrandExit
上设置的断点应该可以工作。 - SilverWarior