pudb3
调试 python3,这真是令人高兴。现在我正在尝试在gdb中调试C代码,并且我正在尝试获得类似的体验。
为了实现这一目标,今天我安装了 gef。它看起来不错,但是在文档中搜索后,我找不到在“上下文”视图中维护包含所有局部变量的列表的方法。我知道
info locals
可以打印我需要的内容,但我希望始终在 gef 的上下文视图中拥有它(我正在 重定向 到另一个终端)。
有什么办法可以实现这一点吗?是否有其他解决方案可以在调试 C 代码时获得类似 pudb3 的体验?
非常感谢。
您可以将 自定义上下文窗格 添加到 gef。创建一个包含以下内容的文件,然后
source
将其添加到您的 gdbinit
文件中:
import gdb
def get_locals() -> str:
localvars = gdb.execute("info locals", to_string=True).strip()
if localvars != 'No symbol table info available.':
return localvars
def print_locals():
gef_print(get_locals())
def info_locals_title() -> str:
return "info locals"
register_external_context_pane("info_locals", print_locals, info_locals_title, condition=get_locals)