在gdb中,我有finish
命令可以轻松完成功能框的执行,通常在调试器中遍历代码时,在查看循环的几次迭代后,我想完成循环并继续行走。目前,我通过在循环和continue
之后的第一行设置断点来实现这一点,但是,如果有一个简单的gdb命令可以产生相同的效果而不需要休息,那么它会非常方便指出要设置然后清除。
gdb中是否还有完成正在执行的当前循环的执行?
答案 0 :(得分:26)
是否有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.
答案 1 :(得分:5)
gdb
不知道循环在哪里结束,所以它不能这样做。我认为你能做的最好的事情是使用advance
命令和循环后的位置。