如何在ddd (gdb)中跳过循环

10

在使用DDD进行多次甚至是繁琐的调试过程中,我常常遇到循环结构。我会一直按“下一步”按钮直到跳出循环,如果循环次数太多,我就在循环后面设置断点,然后按“继续”按钮。除了这种方式,是否还有其他方法可以跳过循环结构呢?


谢谢你将 s/passed/past/g 改正过来...英语并不是我的母语,但我无疑正在逐渐提高。 - vehomzzz
2个回答

15
您需要使用 "until" 命令 - 请查看 gdb 手册 http://www.gnu.org/software/gdb/documentation

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

这意味着当您通过单步执行到达循环结尾时,until 使您的程序继续执行,直到退出循环。相比之下,位于循环末尾的 next 命令只会回到循环的开头,这会强制您单步执行下一个迭代。


3

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接