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

时间:2010-03-12 19:26:10

标签: c++ c gdb ddd-debugger

在使用DDD的许多,有时是淹没,调试会话期间,我偶然发现了循环。然后我一直按下它以通过它,如果有很多次迭代,我只需在它之后设置一个断点,然后按“继续”。有没有其他方法可以通过循环?

2 个答案:

答案 0 :(得分:15)

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

  

继续运行直到源代码行   过去当前的线,在当前   堆栈框架,到达。这个命令   用于避免单步执行   不止一次通过一个循环。它是   像下一个命令,除了   直到遇到跳跃,它   自动继续执行   直到程序计数器更大   而不是跳跃的地址。

     

这意味着当你到达终点时   虽然单步执行后循环   它,直到你的程序继续   执行直到它退出循环。在   对比,结束时的下一个命令   一个循环简单地回到了   循环的开始,强制   你要步入下一个   迭代。

答案 1 :(得分:3)

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