如何在gdb中查看“next”代码行?

时间:2011-07-24 05:14:46

标签: debugging gdb

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

  • 当然我可以说l,但如果我说l几次(并且不记得多少次),那么l不打印被执行。
  • 我还可以回滚到gdb上次停止的时间,看看它在哪一行,但有时候会涉及到挖掘一堆输出。

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

4 个答案:

答案 0 :(得分:2)

您可以使用

  

list * $ eip

或更短的表格

  

l * $ eip

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

答案 1 :(得分:1)

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

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

请注意,如果您已使用list命令,则当前行将更改,即它将不再是下一个执行行。所以这只适用于你的第一个list命令。

答案 2 :(得分:1)

要查看调试器停止的当前行,可以使用不带参数的farme命令。这实现了与update命令相同的效果。它适用于tui和命令行模式。

答案 3 :(得分:0)

听起来你想在GDB中运行Emacs(它会显示当前文件并标记当前行),DDDtui模式