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

问题描述 投票:2回答:1

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

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

  if I = 5 then
    Exit;

end;

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

delphi debugging breakpoints
1个回答
0
投票

您不能(可靠地)在EXIT(或CONTINUE或BREAK)上设置断点,因为它们不是正常意义上的语句。

但是,您可以在IF线上设置一个断点,然后右键单击该断点的红点,选择Breakpoint Properties,然后在条件字段中输入与IF语句相同的条件:

Conditional Breakpoint

这会稍微降低执行速度(如果该条件断点在循环内,则会降低执行速度,但是仅在满足条件时才会激活断点(断点实际上在每次被命中时都会暂停程序,但是如果它有条件集,除非满足条件,否则调试器将评估该表达式并继续执行而不会通知您。]

当然,这是一个简化的示例,但是在这种情况下,您通常可以使用条件断点来克服无法在精确的EXIT语句上设置断点的限制。

© www.soinside.com 2019 - 2024. All rights reserved.