如何让GDB + GEF打印上下文中的局部变量列表?

问题描述 投票:0回答:1

我刚刚使用

pudb3
调试 python3,这真是令人高兴。现在我正在尝试在gdb中调试C代码,并且我正在尝试获得类似的体验。

为了实现这一目标,今天我安装了 gef。它看起来不错,但是在文档中搜索后,我找不到在“上下文”视图中维护包含所有局部变量的列表的方法。我知道

info locals
可以打印我需要的内容,但我希望始终在 gef 的上下文视图中拥有它(我正在 重定向 到另一个终端)。

有什么办法可以实现这一点吗?是否有其他解决方案可以在调试 C 代码时获得类似 pudb3 的体验?

非常感谢。

gdb gdb-python
1个回答
0
投票

您可以将 自定义上下文窗格 添加到 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)
© www.soinside.com 2019 - 2024. All rights reserved.