C'è un flag in g++
o strumenti per scaricare le variabili membro di una struct/class? Per illustrare, si consideri il codice sorgente come questoVariabili della classe Dump/struct member in 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; };
voglio ottenere qualcosa di simile 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
non funziona. Esso stampa solo le funzioni membro.)
(Si supponga I non conosco le classi A
a D
, o ci sono così tante classi che non voglio elencarle da solo.)
(In particolare, voglio scaricare le variabili membro di http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/iokit/IOKit/IOUserClient.h).
Grazie! 'gcc-xml' funziona per me, anche se ho ancora bisogno di scrivere uno script non troppo piccolo per riconvertirlo nel modulo che mi serve. (http://networkpx.googlecode.com/svn/etc/print-struct-members.py nel caso in cui qualcuno fosse interessato.) – kennytm