Linux でのデバッグ目的で、、、およびツールgdbをobjdump調査valgrindしようとしています。nm
info localsGDBを使用してローカル変数を出力できますが、現在のスタック フレームに移動してローカル変数を出力する必要があります。
特定のスタック フレームに移動せずに、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