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-class-hierarchy
不起作用。它只打印成员函数。)
(假设我不知道A
到D
的类,或者有很多类我不想自己列出它们。)
(具体来说,我想转储http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/iokit/IOKit/IOUserClient.h)的成员变量。