2011-10-17 18 views
5

Come posso fare in modo che gdb stampi i campi di una struttura in modo ricorsivo,
, ad esempio segui i puntatori.Come stampare una struttura C in modo ricorsivo in gdb

In questo momento, devo passare all'interno di ciascun campo e specificare un '*' per stampare
la sottostruttura, oppure digitare cast per vedere cosa c'è dentro la sottostruttura.

ad es.

typedef struct { 
int a; 
}A; 

typedef struct { 
A *pA; 
int b; 
}B; 

typedef struct { 
B *pB; 
int c; 
}C; 

C var_c; 
C *pC = var_c; 

... ...

Ora, vorrei fare "p * pc" sul prompt di gdb,
di vedere tutto e non solo l'indirizzo del pB.

risposta

2

Il modo migliore per ottenere ciò che si desidera è scrivere una stampante carina python per le proprie strutture. Documentazione here.

Problemi correlati