8

プログラムで実行するvalgrind --leak-check=yesと、数バイトの失われたメモリが報告されます。このメモリの内容を表示する(つまり、そこに保存されているデータをダンプする)ことは可能ですか?

4

1 に答える 1

12

Valgrindの最後のバージョン(3.8.1)でそれを行うことができます:

実行可能ファイルを起動して、起動時にgdbserverをアクティブ化します。

valgrind --vgdb-error=0 ....<your program>

次に、別のウィンドウで、gdbをValgrindに接続します(Valgrindの指示に従います)。次に、関連する場所(メインの最後など)にブレークポイントを設定し、gdbを使用します

continue

ブレークポイントに到達するまでコマンドを実行します。次に、gdbからリーク検索を実行します。

   monitor leak_check full reachable any

次に、関連する損失レコードnrの到達可能なブロックのアドレスをリストします。

   monitor block_list <loss_record_nr>

次に、gdb機能を使用して、指定されたアドレスのメモリを調べることができます。このメモリへのポインタを保持しているユーザーを検索する場合は、潜在的に興味深いコマンド「who_points_at」にも注意してください。

于 2012-10-04T20:34:12.710 に答える