c - 配列 - ローカル 変数 グローバル 変数 変換




すべてのグローバル変数/ローカル変数を出力しますか? (2)

どのようにグローバル変数/ローカル変数をすべて出力できますか? gdbで可能ですか?


info variablesを入力して、 "すべてのグローバル変数名と静的変数名"を表示します。

info localsと入力すると、その関数内の静的変数を含む "現在のスタックフレームのローカル変数"(名前と値)が表示されます。

info argsと入力すると、「現在のスタックフレームの引数」(名前と値)が表示されます。


あなたが呼び出し元関数のローカル変数を見たい場合は、 info locals前にselect-frame使いselect-frame

例えば:

(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) 




global-variables