有没有一种快速的方法在gdb的断点处显示源代码?

时间:2015-12-07 17:47:48

标签: gdb

我在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

我可以输入"列出MyClass.cpp:1021"看看这个断点周围的线条,但我想知道是否有更短的路线。谷歌搜索和阅读gdb手册并没有发现任何事情。

我知道如果我正在执行程序并且已经点击了断点,我可以输入" list",但我要具体询问我不在的情况断点(程序可能甚至没有运行)。

2 个答案:

答案 0 :(得分:2)

您可以使用list命令显示来源。 list采用“linespec”,这是break接受的各种参数的gdb术语。因此,您可以将其用于创建断点的任何参数传递给它(例如,list function),或者您可以将info b显示的文件和行传递给它(例如{{1} }})。

答案 1 :(得分:0)

我认为您应该探索tui模式。使用文件打开gdb,然后按ctrl-x-a。 这不仅仅是显示代码。您可以看到寄存器,汇编。在相同的位置上看到这个很棒的演示 https://youtu.be/Yq6g_kvyvPU