¿Hay un indicador en g++
o herramientas para volcar las variables de miembro de una estructura/clase? Como ejemplo, consideremos el código fuente como estaVariables de miembros de clase/estructura de volcado en 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; };
quiero conseguir algo similar a
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
no funciona. Sólo imprime las funciones miembro.)
(Suponga que no sé las clases A
a D
, o hay tantas clases que no quiero enumerarlas yo mismo.)
(Específicamente, deseo volcar las variables miembro de http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/iokit/IOKit/IOUserClient.h).
Gracias! 'gcc-xml' funciona para mí, aunque todavía tengo que escribir un script no muy pequeño para convertirlo de nuevo al formulario que necesito. (http://networkpx.googlecode.com/svn/etc/print-struct-members.py en caso de que alguien esté interesado). – kennytm