程序经常出现循环语句,而循环语句的调试是复杂的。可以使用【位置断点】来解决这个问题。
【位置断点】就是在指定的行设置断点。F9即可设置当前行的断点。再按Ctrl+B --》选中"at { xxx.cpp}"--》Codition---》在skip编辑框里输入相应的循环次数即可。具体如下。
例如,在一个循环的过程中可能出现异常,就可以使用位置断点,如下:
#include <stdio.h> void main() { int sum=0; int n=15; for (int i=1;i<=100;i++) { sum += i; int k=sum; k/=(sum-n); } printf("sum=%d\n",sum); }
上面的代码执行时,在for循环中会出现异常。由于该循环的次数很多,不能简单地使用【单步调试】。为了加快调试,可在 sum + = i; 这一行添加一个断点,F9即可,
然后,按【Ctrl + B】快捷键,弹出“Breakpoints”窗口,选择断点--》Condition--》在“skip”编辑框里输入循环的最大次数,比如 100.--》OK,如图(1)、图(2)所示:
图(1)选中“at {}”--》Condition
图(2)输入循环次数
位置断点设置完成后,按F5进入调试状态,此时程序会报错,不着急,关闭“报错的对话框”。按【Ctrl + B】打开“Breakpoints”窗口,在“at . cpp xxx times”这一栏,发现“95 remaining”
表明该循环有95次循环未执行,即该循环执行了100-95=5,此时,sum=5*(1+5)/2 = 15,那么 sum-n=0,说明,除数为0,即 k/ = (sum-n)有错误。
图(3)Ctrl+B --》查看“没循环”的次数
修改方法:把n的值由15改为2,即 “ int n=2”
时间: 2024-11-12 08:36:56