如何在 ddd (gdb) 中跳过过去的循环
Posted
技术标签:
【中文标题】如何在 ddd (gdb) 中跳过过去的循环【英文标题】:How to skip past loops in ddd (gdb) 【发布时间】:2010-03-12 19:26:09 【问题描述】:在许多使用 DDD 的调试会话中,有时是大量的调试会话中,我偶然发现了循环。而且我一直按next跳过它,如果有很多迭代,我就在它后面设置一个断点,然后按“继续”。有没有其他方法可以绕过循环?
【问题讨论】:
感谢 s/passed/past/g ... 英语不是我的第一语言,尽管毫无疑问我会变得更好。 【参考方案1】:您需要“直到”命令 - 请参阅http://www.gnu.org/software/gdb/documentation 的 gdb 手册:
继续运行直到出现源代码行 越过当前行,在当前 堆栈帧,已到达。这个命令 用于避免单步执行 通过一个循环不止一次。这是 像下一个命令,除了 当直到遇到跳跃时,它 自动继续执行 直到程序计数器更大 比跳转的地址。
这意味着当你到达终点时 单步后的循环 它,直到让你的程序继续 执行直到它退出循环。在 相反,在末尾的下一个命令 一个循环简单地回到 循环的开始,它强制 你要通过下一个 迭代。
【讨论】:
【参考方案2】:我通常使用“继续到这里”,它在该位置设置一个临时断点并立即继续执行。可通过鼠标按钮 3 访问它,该按钮会打开一个弹出菜单。
【讨论】:
以上是关于如何在 ddd (gdb) 中跳过过去的循环的主要内容,如果未能解决你的问题,请参考以下文章