Imprimer toutes les variables globales / variables locales?

Comment puis-je imprimer toutes les variables globales / variables locales? Est-ce possible dans gdb?

Tapez les info variables à lister “Tous les noms de variables globales et statiques”.

Tapez les info locals dans la liste “Variables locales du frame de stack actuel” (noms et valeurs), y compris les variables statiques dans cette fonction.

Tapez info args pour lister “Arguments du frame de stack actuel” (noms et valeurs).

Si vous souhaitez voir les variables locales d’une fonction appelante, utilisez select-frame avant les info locals

Par exemple:

 (gdb) bt #0 0xfec3c0b5 in _lwp_kill () from /lib/libc.so.1 #1 0xfec36f39 in thr_kill () from /lib/libc.so.1 #2 0xfebe3603 in raise () from /lib/libc.so.1 #3 0xfebc2961 in abort () from /lib/libc.so.1 #4 0xfebc2bef in _assert_c99 () from /lib/libc.so.1 #5 0x08053260 in main (argc=1, argv=0x8047958) at ber.c:480 (gdb) info locals No symbol table info available. (gdb) select-frame 5 (gdb) info locals i = 28 (gdb) 

De plus, puisque les info locals n’affiche pas les arguments de la fonction dans laquelle vous vous trouvez, utilisez

 (gdb) info args 

Par exemple:

 int main(int argc, char *argv[]) { argc = 6*7; //Break here. return 0; } 

argc et argv ne seront pas montrés par les info locals . Le message sera “Pas d’habitants”.

Référence: commande des informations locales .