Respuestas:
Escriba info variables
para enumerar "Todos los nombres de variables globales y estáticas".
Escriba info locals
para enumerar "Variables locales del marco de pila actual" (nombres y valores), incluidas las variables estáticas en esa función.
Escriba info args
para enumerar "Argumentos del marco de pila actual" (nombres y valores).
y
se cambia y.1913
el nombre de una variable estática en la compilación.
y
en función foo
y otra y
en bar
. Para distinguirlos, se debe asignar un nombre diferente a los dos y
.
En caso de que desee ver las variables locales de una función de llamada, use select-frame
antesinfo locals
P.ej:
(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)
select-frame
puede abreviarse como sel
. Alternativamente use frame
/ f
, que también imprime el marco)
Además, como info locals
no muestra los argumentos de la función en la que se encuentra, use
(gdb) info args
Por ejemplo:
int main(int argc, char *argv[]) {
argc = 6*7; //Break here.
return 0;
}
argc
y argv
no se muestra por info locals
. El mensaje será "No hay locales".
Referencia: comando info locales .
info variables
deberían ser variables estáticas dentro de esa unidad de compilación, ¿verdad?