我无法看到我定义的结构的所有typedef。特别是,如果未使用typedef,则在打印类型时gdb不会显示它。这是一个例子:
struct D
{
typedef double dtype;
typedef int itype;
};
int main(int /*argc*/, char** /*argv*/)
{
D::dtype t;
t = 2;
return 0;
}
当我运行gdb时,我输入ptype D
,但我只得到以下
(gdb) ptype D
type = struct D {
typedef double dtype;
}
(gdb)
有没有办法打印所有typedef,即使它们没有被使用? 其他信息:
set print type typedefs on
答案 0 :(得分:4)
默认情况下,GCC会从调试信息中省略未使用的类型。如果您确实需要此类型出现在调试信息中,请使用-fno-eliminate-unused-debug-types
。但是,正如手册警告的那样,这会使得到的调试信息膨胀。