4

Linux でのデバッグ目的で、、、およびツールgdbobjdump調査valgrindしようとしています。nm

info localsGDBを使用してローカル変数を出力できますが、現在のスタック フレームに移動してローカル変数を出力する必要があります。

特定のスタック フレームに移動せずに、C コードで使用されているすべてのローカル変数とグローバル変数 (値を含む) を (プログラムがクラッシュした場合はコアダンプから) 出力する方法はありますか?

4

2 に答える 2

2

ご指摘のとおり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
于 2014-04-01T09:56:42.550 に答える