我在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",但我要具体询问我不在的情况断点(程序可能甚至没有运行)。
答案 0 :(得分:2)
您可以使用list
命令显示来源。 list
采用“linespec”,这是break
接受的各种参数的gdb术语。因此,您可以将其用于创建断点的任何参数传递给它(例如,list function
),或者您可以将info b
显示的文件和行传递给它(例如{{1} }})。
答案 1 :(得分:0)
我认为您应该探索tui
模式。使用文件打开gdb,然后按ctrl-x-a。
这不仅仅是显示代码。您可以看到寄存器,汇编。在相同的位置上看到这个很棒的演示
https://youtu.be/Yq6g_kvyvPU