c - 在 GDB 中使用 ptype 设置扩展结构的深度

标签 c gdb

考虑以下 C 语言代码:

typedef struct {
    union {
        struct {
            int x:16;
            int y:16;
        };
        int combi_xy;
    };
} T_MY_STRUCT;

现在有了 GDB,我想看看这个结构的设置。我使用 ptype 这样做:

(gdb) ptype T_MY_STRUCT
type = struct {
    union {
        struct {...};
        int combi_xy;
    };
}

但这个结果对我来说不是很令人满意,因为内部结构(x 和 y)的所有内容都已被隐藏/替换为 {...}。无论如何都可以看到内部结构的内容吗?是否有一些选项可以设置 ptype 的嵌套深度?或者甚至是扩展整个结构的选项,无论嵌套结构的数量如何?

请注意,如果我可以扩展与示例中的嵌套级别相同的嵌套级别,我会很好。

最佳答案

您可以使用 Python 和 gdb.lookup_type()、gdb.Type.fields() 等。

关于c - 在 GDB 中使用 ptype 设置扩展结构的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39295276/

相关文章:

c - 通过更改 C 中的函数调用来节省代码空间

objective-c - 在越狱的 iPod touch 上使用 gdb 调试 iOS 应用程序 | Objective-C 符号

c++ - Qt Creator gdb 显示 C 数组元素

linux - 在GDB中获取线程的堆栈区域

c++ - 内联所有虚函数的模板类

c - 什么?在 gdb backtrace 中意味着以及如何获得实际的堆栈帧?

python - SOL_有什么用?

c - Unsigned Int 到 Void* 然后返回

在 C 中使用较少数量的参数调用函数?

c - 在 C 中有重复的枚举值是否合法?