繁体   English   中英

如何查看在 gdb 中将执行哪一行代码“下一个”?

[英]How to see which line of code "next" would execute in gdb?

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

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

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

您可以使用

列表 *$eip

或更短的形式

l *$eip

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM