Jawaban:
Ketikkan info variableske daftar "Semua nama variabel global dan statis".
Ketik info localsuntuk daftar "Variabel lokal dari frame stack saat ini" (nama dan nilai), termasuk variabel statis dalam fungsi itu.
Ketik info argsuntuk daftar "Argumen dari frame stack saat ini" (nama dan nilai).
ydiubah namanya menjadi y.1913saat dikompilasi.
ydalam fungsi foodan lain ydi bar. Untuk membedakan mereka, nama yang berbeda harus ditetapkan untuk keduanya y.
Jika Anda ingin melihat variabel lokal dari fungsi panggil gunakan select-framesebelumnyainfo locals
Misalnya:
(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-framedapat disingkat sel. Atau gunakan frame/ f, yang juga mencetak bingkai)
Selain itu, karena info localstidak menampilkan argumen ke fungsi Anda, gunakan
(gdb) info args
Sebagai contoh:
int main(int argc, char *argv[]) {
argc = 6*7; //Break here.
return 0;
}
argcdan argvtidak akan ditampilkan oleh info locals. Pesannya adalah "Tidak ada penduduk setempat."
Referensi: info perintah penduduk setempat .
info variablesharus variabel statis dalam unit kompilasi, kan?