在调试gdb中的一些代码时,我想看看如果我说next
或step
,哪一行将被执行。
- 当然我可以说
l
,但是如果我说l
几次(并且不记得多少次),那么l
不会打印将要执行的行。 - 我也可以滚动回gdb上次停止的地方,看看它在哪一行,但有时需要挖掘一堆输出。
我想知道我是否在gdb中缺少一个简单的命令,该命令显示了调试器停止的当前行?
要查看调试器停在的当前行,可以使用不带参数的frame
命令。这与update
命令的效果相同。它可以在tui
和命令行模式下工作。
可以使用
列表*美元eip
或缩写形式
l *美元eip
指示gdb打印当前程序计数器附近的源代码行。
你可以说l +0
;当前行将是列出的第一行。
命令l +offset
列出从offset
行开始的代码,从当前行开始。
注意,如果您已经使用了list
命令,那么当前行将被更改,也就是说,它将不再是下一个执行行。所以这只适用于你的第一个list
命令
听起来您想要在Emacs
(它将显示当前文件并标记当前行),DDD
或tui
模式下运行GDB
。