我正在使用 gdb 调试器来运行一个包含循环的程序(让我们坐在 10 中)。当我进入循环时,我不想进入它。我知道我可以在循环之后设置第二个断点,而不是 c (继续)。但我也记得有可能做类似 n 10 (接下来的 10 次)的事情。n 10 不起作用(gdb 并没有说我做错了什么,但它没有达到我的预期)。
一个命令可以运行n次吗?
Jur*_*lak 12
要执行任意 gdb 命令 N 次,最简单的方法是:
(gdb) python [gdb.execute('YOUR_COMMAND') for x in range(N)]
Run Code Online (Sandbox Code Playgroud)
它对您的自定义 gdb 命令非常有帮助(请参阅 gdb 定义)
例如,
(gdb) python [gdb.execute('next') for x in range(10)]
(gdb) python [gdb.execute('step') for x in range(5)]
Run Code Online (Sandbox Code Playgroud)
你知道命令吗until?
尝试使用它走到 X 行。
例子:
(gdb) until 123
Run Code Online (Sandbox Code Playgroud)
或者
(gdb) u 123
Run Code Online (Sandbox Code Playgroud)
(gdb) help until执行,直到程序到达大于当前帧或当前帧内指定位置(与中断命令相同的参数)的源代码行。