Debugging 在给定断点周围使用GDB查看代码进行调试 我试图用GDB调试一个C++程序。我设置了15个断点。大多数断点位于不同的文件中。在前5个断点之后,很难记住任何给定断点所指的代码行
我很难简单地回忆起给定断点所指的内容。我觉得这很让人分心。我想知道是否有一种方法可以告诉gdb在某个断点周围显示代码 类似这样的代码-Debugging 在给定断点周围使用GDB查看代码进行调试 我试图用GDB调试一个C++程序。我设置了15个断点。大多数断点位于不同的文件中。在前5个断点之后,很难记住任何给定断点所指的代码行,debugging,emacs,gdb,breakpoints,Debugging,Emacs,Gdb,Breakpoints,我很难简单地回忆起给定断点所指的内容。我觉得这很让人分心。我想知道是否有一种方法可以告诉gdb在某个断点周围显示代码 类似这样的代码-$(gdb)代码3在断点3周围显示了30行代码。今天可能吗。你能告诉我怎么做吗 我在tui模式下运行gdb,并且我还保持emacs打开以编辑我的源文件。您可以在emacs中使用gdb 在emacs中,输入可执行文件的名称后,键入M-xgdb,在许多窗口中键入M-xgdb。它提供了一个类似IDE的接口,可以访问调试器、局部变量、源、输入/输出、堆栈帧和断点 您可以找
$(gdb)代码3
在断点3周围显示了30行代码。今天可能吗。你能告诉我怎么做吗
我在tui模式下运行gdb,并且我还保持emacs打开以编辑我的源文件。您可以在emacs中使用gdb 在emacs中,输入可执行文件的名称后,键入
M-xgdb
,在许多窗口中键入M-xgdb
。它提供了一个类似IDE的接口,可以访问调试器、局部变量、源、输入/输出、堆栈帧和断点
您可以找到一个引用和快照。我不认为您可以在gdb中这样做,但它可以用gdb python编写脚本 这个粗略的脚本应该有助于:
import gdb
class Listbreak (gdb.Command):
""" listbreak n Lists code around breakpoint """
def __init__ (self):
super(Listbreak, self).__init__ ("listbreak", gdb.COMMAND_DATA)
def invoke (self, arg, from_tty):
printed = 0
for bp in gdb.breakpoints():
if bp.number == int(arg[0]):
printed = 1
print ("Code around breakpoint " + arg[0] + " (" + bp.location + "):")
gdb.execute("list " + bp.location)
if printed == 0:
print ("No such breakpoint")
Listbreak()
将其复制到listbreak.py,在gdb(source listbreak.py)中进行源代码转换,然后像这样使用它:
列表中断2