【问题标题】:How to skip past loops in ddd (gdb)如何在 ddd (gdb) 中跳过过去的循环
【发布时间】:2010-03-12 19:26:09
【问题描述】:

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

【问题讨论】:

  • 感谢 s/passed/past/g ... 英语不是我的第一语言,尽管毫无疑问我会变得更好。

标签: c++ c gdb ddd-debugger


【解决方案1】:

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

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

这意味着当你到达终点时 单步后的循环 它,直到让你的程序继续 执行直到它退出循环。在 相反,在末尾的下一个命令 一个循环简单地回到 循环的开始,它强制 你要通过下一个 迭代。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 2012-12-13
      • 1970-01-01
      相关资源
      最近更新 更多