delphi - 无法进入for循环

标签 delphi debugging for-loop

我遇到了一个以前从未见过的奇怪问题。现在我有一个 for 循环:

var
 a,counter: byte;
begin
  a:=0; 
   for counter := 1 to 10 do//I put a breakpoint at this line
   begin
     a:=a*5;
     a:=a+counter;
   end;
end;

如果我在上面的行放置一个断点并尝试单步进入循环,我将无法执行此操作。调试器立即跳过循环并走到最后。最后我得到了正确的结果,但我无法一步一步地跟踪循环。我的意思是这只是一个简单的例子,而不是真正的任务。我只想知道什么时候什么情况下会出现这种情况?我绝对记得跟踪循环的所有步骤。我使用 Delphi 2010。

最佳答案

循环中的两行代码都可以完全优化掉;您在循环之外对 a 不执行任何操作,因此这两个赋值都是不必要的。优化结束后,编译器离开

for counter := 1 to 10 do 
  ;

实际上,如果那里没有断点,循环也会被删除,因为它什么也不做。

如果您的代码有问题,并且上面的信息没有帮助(在循环运行后使用变量 a),您需要发布您的真实代码。这段编写的代码很容易分析;实际代码中的问题可能就是这么简单,或者分析起来要复杂得多。

关于delphi - 无法进入for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604640/

相关文章:

file - 在Delphi中的二进制文件中间插入记录

C 编程 : File reader format conversion Error

c - C中的for循环错误

c - 变量周围的运行时检查失败堆栈已损坏

delphi - 以编程方式检查自定义 TreeView 复选框

performance - 从一个数组中减去另一个数组的最高效方法

linux - 如何使用 LLDB 调试服务器本身进行调试

java - 在 Eclipse 中一次运行多个调试实例

java - 带星号的矩形 Java

delphi - "Types of actual and formal var parameters must be identical"程序错误