gdb:看看未使用的struct typedef

时间:2016-02-10 19:21:53

标签: c++ gdb

我无法看到我定义的结构的所有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,即使它们没有被使用? 其他信息:

  1. 我有set print type typedefs on
  2. 我使用调试符号编译:{{1​​}}
  3. gdb版本是7.10
  4. gcc版本是5.3

1 个答案:

答案 0 :(得分:4)

默认情况下,GCC会从调试信息中省略未使用的类型。如果您确实需要此类型出现在调试信息中,请使用-fno-eliminate-unused-debug-types。但是,正如手册警告的那样,这会使得到的调试信息膨胀。