2011-09-10 11 views
1

私はValgrindのを発見し、優れた検出器を思わ(私はまだそれでは動作しません)が、別のがあっされ、Valgrindや他のツールで私のQtソフトウェアのメモリリークを検出する方法は?

を私はQT/C++でライブラリを開発しているし、今私は、メモリリークテストについて確認したいですメモリリークのテスト用ツール

+5

Valgrindのは、あなたがLinxu/UNIXプラットフォーム上にある場合は、ちょうどそれを使用する方法についてvalgrindのウェブサイト上で見て十分です。 –

+0

良いリスト[here](http://en.wikipedia.org/wiki/Memory_debugger)があります。 – cyco130

答えて

0

あなたはメモリリークが(あなたのコードに依存する)程度の追加affortせずに自分でチェック行うことができます。ちょうどあなた自身のバージョンの演算子を新しく提供し、削除してください。コンテナを使用して、new内に割り当てられた各メモリアドレスを格納します。 deleteが呼び出された場合はコレクションから削除します。プログラムの最後に、コレクションが空であるかどうかを確認します。

詳細は、例えばすることができALSはコメントで、私の個人的な経験から指摘したように、アイテム

+0

あなたの答えをありがとう、私はそれは非常に良いアイデアだと思う。 – softghost

+0

あなたは私の考えが好きですばらしい。しかし、あなたはあなたの実装がnewとdelete演算子のための一般的な慣習に従って世話をする必要があります... – Reinhard

+1

ところで、valgrindのは、まさにその! –

1

はい50、スコット・マイヤーズ帳効果的なC++で見つかった、私はまた、valgrindのと一緒に行くことをお勧めします。あなたが使用するかもしれない--leak-check=yesなどの様々なオプションがあります。 valgrindを実行すると、次回の実行時に含めることができる推奨オプションが出力されます。

Valgrindのを試みている問題は、すなわち、メモリリークを発見する、複雑な問題です。 valgrindが混乱し、誤検出を出力する場合があります。つまり、存在しない場所でメモリリークが発生することがあります。しかし、これ以外に、valgrindは非常にユーザーフレンドリーで便利です。

関連する問題