valgrindを使用してメモリリークの長期実行プロセスをチェックしたいと考えています。後のメモリリークは、数時間の実行後に起こる可能性があると私は思っています。私はvalgrindの下でアプリケーションを実行し、valgrindログを正常に取得することができますが、私はアプリケーションを終了し、私はまだいくつかの時間を待たなければならない新しいvalgrindセッションのために再びそれを開始する必要があることを意味します。 valgrindとアプリケーションを実行したままにして、実行中の任意の時点でvalgrind(部分)データを取得することは可能ですか?プロファイリングされたアプリケーションを終了することなく出力レポートの一部を出力できますか?
5
A
答えて
8
これは、Valgrind gdbserver and GDBを使用して行うことができます。
は一言で言えば、あなたはいつものようにvalgrindのを使用してプログラムを起動しますが、--vgdb=yes
スイッチで:
$ valgrind --tool=memcheck --vgdb=yes ./a.out
別のセッションでは、同じ実行可能でGDBを起動し、valgrindのに接続します。その後、valgrindのコマンドを発行することができます
$ gdb ./a.out
...
(gdb) target remote | vgdb
....
(gdb) monitor leak_check full reachable any
==8677== 32 bytes in 1 blocks are definitely lost in loss record 1 of 2
==8677== at 0x4C28E3D: malloc (vg_replace_malloc.c:263)
==8677== by 0x400591: foo (in /home/me/tmp/a.out)
==8677== by 0x4005A7: main (in /home/me/tmp/a.out)
==8677==
==8677== 32 bytes in 1 blocks are definitely lost in loss record 2 of 2
==8677== at 0x4C28E3D: malloc (vg_replace_malloc.c:263)
==8677== by 0x400591: foo (in /home/me/tmp/a.out)
==8677== by 0x4005AC: main (in /home/me/tmp/a.out)
==8677==
==8677== LEAK SUMMARY:
==8677== definitely lost: 64 bytes in 2 blocks
==8677== indirectly lost: 0 bytes in 0 blocks
==8677== possibly lost: 0 bytes in 0 blocks
==8677== still reachable: 0 bytes in 0 blocks
==8677== suppressed: 0 bytes in 0 blocks
==8677==
(gdb)
は、コマンドのリストについては、memcheckためhereをマニュアルを参照してください。
関連する問題
- 1. ob_get_flush()の終了なしで出力を出力するob_start()
- 2. レポートを書くときにr出力をレポートにコピーする
- 3. QNetworkReply終了シグナルが出力されたときにSIGSEGVをスローする
- 4. プロセスの終了ステータスは、終了する前に出力されます。
- 5. javaから外部プロセスを実行します。プロセスが終了した後に出力を得ましたが、終了前に出力が必要です
- 6. PHP終了とまだ出力バッファ
- 7. Application.Run()が呼び出される前に終了(終了)とアプリケーションが呼び出されていますか?
- 8. ターミナルで出力されたテラフォームテンプレートを出力しますか?
- 9. パーサがエラーと終了ではなくヘルプメッセージを出力する方法
- 10. numpy.uniqueは一意でない出力を出力しますか?
- 11. アプリケーションが終了したときに、バックグラウンドスレッドがアプリケーションによって強制終了されたことを検出できますか?
- 12. 制限付き入力と出力可能な出力を一致させるアルゴリズムはありますか?
- 13. 出力ファイルを開くことができません:ディレクトリcollect2:ldが1を返しました終了ステータス
- 14. cmdが終了するまでティー出力が表示されない
- 15. node.jsのコンソール出力の終了を検出する
- 16. MediaWikiプロファイリング出力の解釈
- 17. 終了コード非ゼロとできない出力ログを参照するには
- 18. Aprioriアルゴリズムの最終出力とみなすべきこと
- 19. オブジェクトの一部を出力する
- 20. ROBLOX:正常終了後にメッセージが出力されない
- 21. ウェブサイトが終了しないときにカールの出力をgrepする方法
- 22. 最終的なodeint出力のみを出力する
- 23. jgraspでこのコードを実行すると出力がなく、コードが終了しない
- 24. アプリケーションは、私は、.NETアプリケーションをプロファイリングしていると私が持っているすべてがこれに似CSV出力である出力
- 25. ssconvertは出力なしで強制終了します。
- 26. SQL Serverスクリプト終了前にSelectステートメントを出力ウィンドウに出力する
- 27. Windowsから出力されたオーディオをLinuxに出力する
- 28. PHPスクリプトの終了前に出力を送信することはできますか?
- 29. 多くの大きなXMLファイルを解析する - 一致するトークンがx秒以上離れて出力されたときに出力する
- 30. 一部のガベージ値が出力に出力されています。理由は何ですか?