Linux でのデバッグ目的で、、、およびツールgdb
をobjdump
調査valgrind
しようとしています。nm
info locals
GDBを使用してローカル変数を出力できますが、現在のスタック フレームに移動してローカル変数を出力する必要があります。
特定のスタック フレームに移動せずに、C コードで使用されているすべてのローカル変数とグローバル変数 (値を含む) を (プログラムがクラッシュした場合はコアダンプから) 出力する方法はありますか?
ご指摘のとおりgdb
、現在のフレームのローカル変数を で表示できますinfo locals
。各フレームに手動で移動したくないという制限がある場合は、それを行う簡単なgdb
スクリプトを使用できます。例えば:
define locals-up
set $n = ($arg0)
set $upto = $n
while $upto > 0
info locals
up-silently 1
set $upto = $upto - 1
end
down-silently $n
end
document locals-up
locals-up <n>: Lists local variables of n frames
end