如何查看"next"将在 gdb 中执行哪一行代码?



在调试gdb中的一些代码时,我想看看如果我说nextstep,哪一行将被执行。

  • 当然我可以说l,但是如果我说l几次(并且不记得多少次),那么l不会打印将要执行的行。
  • 我也可以滚动回gdb上次停止的地方,看看它在哪一行,但有时需要挖掘一堆输出。

我想知道我是否在gdb中缺少一个简单的命令,该命令显示了调试器停止的当前行?

要查看调试器停在的当前行,可以使用不带参数的frame命令。这与update命令的效果相同。它可以在tui和命令行模式下工作。

可以使用

列表*美元eip

或缩写形式

l *美元eip

指示gdb打印当前程序计数器附近的源代码行。

你可以说l +0;当前行将是列出的第一行。

命令l +offset列出从offset行开始的代码,从当前行开始。

注意,如果您已经使用了list命令,那么当前行将被更改,也就是说,它将不再是下一个执行行。所以这只适用于你的第一个list命令

听起来您想要在Emacs(它将显示当前文件并标记当前行),DDDtui模式下运行GDB

最新更新