无法在Delphi的Exit语句中设置断点?

ala*_*ncc 3 delphi debugging breakpoints

我尝试在Exit语句中设置断点,如下所示:

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  I := 5;

  if I = 5 then
    Exit;

end;
Run Code Online (Sandbox Code Playgroud)

但是,当程序启动时,断点将变成一个红叉,表明它不可用。为什么?我正在使用项目的“调试”版本,并使用“运行”按钮来调试项目。

dum*_*uch 5

除了使用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;
Run Code Online (Sandbox Code Playgroud)

这为您提供了放置断点的便利位置。

  • 我的是“ sleep(0)”;) (3认同)