Respostas:
Digite info variables
para listar "Todos os nomes de variáveis globais e estáticas".
Digite info locals
para listar "Variáveis locais do quadro de pilha atual" (nomes e valores), incluindo variáveis estáticas nessa função.
Digite info args
para listar "Argumentos do quadro de pilha atual" (nomes e valores).
y
é renomeada para y.1913
na compilação.
y
em função foo
e outra y
em bar
. Para distingui-los, um nome diferente deve ser atribuído aos dois y
.
Caso deseje ver as variáveis locais de uma função de chamada usadas select-frame
antesinfo locals
Por exemplo:
(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
pode ser abreviado como sel
. Como alternativa, use frame
/ f
, que também imprime o quadro) #
Além disso, como info locals
não exibe os argumentos da função em que você está, use
(gdb) info args
Por exemplo:
int main(int argc, char *argv[]) {
argc = 6*7; //Break here.
return 0;
}
argc
e argv
não será mostrado por info locals
. A mensagem será "Nenhum local".
Referência: comando info locals .
info variables
devem ser variáveis estáticas dentro dessa unidade de compilação, certo?