Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 转储g+中的类/结构成员变量+;_C++_Gcc_G++ - Fatal编程技术网

C++ 转储g+中的类/结构成员变量+;

C++ 转储g+中的类/结构成员变量+;,c++,gcc,g++,C++,Gcc,G++,在g++或工具中是否有用于转储结构/类的成员变量的标志?为了说明,请考虑这样的源代码 struct A { virtual void m() {}; }; struct B : public A { int b; virtual void n() = 0; }; struct C : public B { int c1, c2; void o(); }; struct D : public C { virtual void n() {}; A d; }; 我想买点类似的 A: 0 = (v

g++
或工具中是否有用于转储结构/类的成员变量的标志?为了说明,请考虑这样的源代码

struct A { virtual void m() {}; };
struct B : public A { int b; virtual void n() = 0; };
struct C : public B { int c1, c2; void o(); };
struct D : public C { virtual void n() {}; A d; };
我想买点类似的

A:   0 = (vptr)

B:   0 = (vptr)
     4 = b

C:   0 = (vptr)
     4 = b
     8 = c1
    12 = c2

D:   0 = (vptr)
     4 = b
     8 = c1
    12 = c2
    16 = d
-fdump类层次结构
不起作用。它只打印成员函数。)

(假设我不知道
A
D
的类,或者有太多的类,我不想自己列出。)


(特别是,我想转储的成员变量)。

我将使用ddd,然后在数据窗格中显示结构。您可以展开指向另一个结构的单个结构,UI将从一个结构扩展到另一个结构。非常强大的调试工具。

为正确的工作使用正确的工具。g++不是一个很好的层次结构查看工具

您可以始终使用外部工具,例如,转储图表


对于power解决方案,它可以将整个程序转储到xml文件中,您可以随意解析该文件。

谢谢。但这需要我列出所有的结构。此外,不幸的是,有些结构是抽象的,所以我不能
new
1。有时代码过于复杂/模糊,无法理解,但调试器仍有望工作。我更幸运的是,我能用电脑访问复杂的结构。也是一个有趣的选择,但是UI需要一些时间来适应。谢谢
gccxml
对我来说很有用,尽管我仍然需要编写一个不太小的脚本来将其转换回我需要的格式。(以防有人感兴趣。)