如何在 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) 中跳过过去的循环的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 的 for 循环中跳过迭代?

Scanf 在循环中跳过(Hangman)

在循环中跳过一组值(在数组中) - Python3

如何从sql中跳过一行?

为啥 .setValue() 在 for 循环中跳过列?

使用 CSV 文件在循环中跳过第一行(字段)? [复制]