Mik*_*yev 2 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;
Run Code Online (Sandbox Code Playgroud)
如果我在上面的行放置一个断点并尝试进入循环,我就无法做到.调试器立即跨越循环并结束.最后我得到了正确的结果,但我不能一步一步地遵循循环.我的意思是这只是一个简单的例子而不是真正的任务.我只是想知道这种情况何时发生?我绝对记得跟踪循环的所有步骤.我使用Delphi 2010.
Ken*_*ite 10
循环中的两行代码都可以完全优化掉; 你a在循环之外什么也不做,所以这两个任务都是不必要的.优化后,编译器将离开
for counter := 1 to 10 do
;
Run Code Online (Sandbox Code Playgroud)
实际上,如果你没有断点,那么循环也会被删除,因为它什么都不做.
如果您的代码出现问题,并且上面的信息没有帮助(a在循环运行后使用变量),您需要发布您的实际代码.这个组成的代码非常清晰可分析; 实际代码中的问题可能很简单,或者分析起来要复杂得多.