gdb - 如何在gdb中递归打印C结构

标签 gdb

如何让 gdb 递归打印结构的字段,
即按照指示。

现在,我必须进入每个字段并指定一个“*”来打印
子结构,或者必须键入强制转换才能查看子结构内的内容。

例如

typedef struct {
int a;
}A;

typedef struct {
A *pA;
int b;
}B;

typedef struct {
B *pB;
int c;
}C;

C var_c;
C *pC = var_c;

...
...

现在,我想在 gdb 提示符下执行“p * pc”,
查看所有内容而不仅仅是 pB 的地址。

最佳答案

实现你想要的最好方法是为你的结构编写一个 python pretty-print 。文档 here .

关于gdb - 如何在gdb中递归打印C结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799928/

相关文章:

gcc - 使用 Yocto 交叉编译 GCC 和 GDB

linux - 如何撤消剥离——即将符号添加回剥离的二进制文件

c - 程序中出现段错误,但 GDB 不显示行号

Windows 7 上 png_set_read_fn() 崩溃

c++ - gdb:显示一些数据的类型信息

fortran - 在 gdb 中对 gfortran 程序的数组越界设置断点

linux - Linux 系统有 gdb 的替代品吗?

c - 如果我有一个 C 函数并且我正在使用 gdb 调试它,我如何找到函数的返回值?

linux - 通过 SSH 和 GDB 启动进程?

c - 帮助 gdb 跟踪(或类似的)