【问题标题】:Is there a quick way to display the source code at a breakpoint in gdb?有没有一种快速的方法可以在 gdb 的断点处显示源代码?
【发布时间】:2016-03-12 10:22:12
【问题描述】:

我在 gdb 中设置了一个断点,我想查看断点所在的确切源行,只是为了确认它是正确的 -- 有没有快速的方法来做到这一点?

“info b”命令提供了有关断点的信息,但它不显示源代码:

(gdb) info b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x00000000006c3ba4 in MyClass::foo(bar*)
                                                   at /home/user1/src/MyClass.cpp:1021

我可以输入“list MyClass.cpp:1021”来查看这个断点周围的行,但我想知道是否有更短的方法。谷歌搜索和阅读 gdb 手册没有发现任何问题。

我知道如果我正在执行程序并遇到断点,我可以输入“list”,但我要特别询问我不在断点的情况(程序甚至可能不是运行)。

【问题讨论】:

  • 我很想知道您是否对此有所了解。

标签: gdb


【解决方案1】:

您可以使用list 命令显示来源。 list 采用“linespec”,这是break 接受的各种参数的gdb 术语。因此,您可以将用于设置断点的任何参数传递给它(例如,list function),也可以将info b 显示的文件和行传递给它(例如,list mysource.c:75)。

【讨论】:

  • 所以,没有什么像“list b 1”这样简单(列出断点 1 的来源?)
  • 不,但如果你愿意的话,也许你可以用 Python 写一个。
  • @Chad 看起来你可以在遇到断点时简单地使用list(无参数),它会打印出周围的代码。再次按回车键将显示后续代码。这和我想象的一样直观!
  • 这与您何时遇到断点无关。这是微不足道的,也是默认的。这是关于在您不在时列出它。所以,不,它不像你想象的那么直观;)Q 甚至包括他知道他可以在当前执行点列出源的事实。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
  • 1970-01-01
  • 2015-06-30
相关资源
最近更新 更多