39

在 gdb 中,我有finish命令轻松完成函数框架的执行,通常在调试器中遍历代码时,在查看循环的几次迭代后,我想完成循环并继续执行它。目前,我通过在循环后的第一行设置断点来做到这一点continue,但是,如果有一个简单的 gdb 命令具有相同的效果但不需要设置断点,那将非常方便后来清了。

gdb 中是否有完成当前正在执行的循环的执行?

4

2 回答 2

46

是否有 gdb 命令来完成循环构造?

在循环的最后一行执行until,或者循环的最后一行until NNN在哪里NNN

(gdb) help until
Execute until the program reaches a source line greater than the current
or a specified location (same args as break command) within the current frame.

不需要设置断点并稍后清除。

临时断点会自动清除自己:

(gdb) help tbreak
Set a temporary breakpoint.
Like "break" except the breakpoint is only temporary,
so it will be deleted when hit.  Equivalent to "break" followed
by using "enable delete" on the breakpoint number.
于 2013-02-01T20:54:02.650 回答
5

gdb不知道循环在哪里结束,所以它不能这样做。我认为你能做的最好的就是advance在循环之后使用带有位置的命令。

于 2013-02-01T16:51:42.290 回答