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

时间:2011-10-17 21:42:10

标签: gdb

如何让gdb以递归方式打印结构的字段,
即遵循指针。

现在,我必须进入每个字段并指定一个'*'来打印
子结构,或者必须键入cast以查看子结构中的内容。

e.g。

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的地址。

1 个答案:

答案 0 :(得分:2)

实现你想要的最好的方法是为你的结构编写一个python漂亮的打印机。文档here