10

在使用 DDD 的许多有时是淹没的调试会话中,我偶然发现了循环。而且我一直按next跳过它,如果有很多迭代,我就在它后面设置一个断点,然后按“继续”。有没有其他方法可以绕过循环?

4

2 回答 2

15

您想要“直到”命令 - 请参阅http://www.gnu.org/software/gdb/documentation上的 gdb 手册:

继续运行,直到到达当前堆栈帧中超过当前行的源代码行。此命令用于避免多次单步执行循环。和next命令一样,只是until遇到跳转时会自动继续执行,直到程序计数器大于跳转的地址。

这意味着当您在单步执行循环后到达循环末尾时,直到使您的程序继续执行直到它退出循环。相反,循环结束时的下一个命令只是简单地退回到循环的开头,这会迫使您逐步完成下一次迭代。

于 2010-03-12T19:36:11.810 回答
3

我通常使用“继续到这里”,它在该位置设置一个临时断点并立即继续执行。它通过鼠标按钮 3 访问,该按钮打开一个弹出菜单。

于 2010-03-12T19:34:21.983 回答