2

たとえば、Visual Leak Detector (VLD) を使用して、サービス アプリケーションのメモリ リークをチェックしています。そして、多くのメモリ割り当てが静的オブジェクトで発生するため、VLD はこれらの誤検知のメモリ リークを除外できるのでしょうか (実際のメモリ リークと見なすべきではありません)。

とても有難い

4

1 に答える 1

2

調査の結果、この VLD は、vld.dll でグローバルな静的オブジェクトも使用し、その dtor がメモリ リークの可能性を報告するため、これらの誤検知メモリ リーク (静的オブジェクトの新規など) を除外できないことがわかりました。デストラクタ シーケンスを確認できなかったため、VLD を使用して静的オブジェクトのメモリ リークを検出できませんでした。

ただし、バイパス ソリューションも見つけました。このツールのソース コードを変更できるため、atexit を使用して reportMemoryLeak 関数を ctor に登録し、このメソッドが dtor の後に呼び出されるようにすることができます。

率直に言って、これはそれほど直接的ではないので、これを参照して くださいhttp://cfc.kizzx2.com/index.php/detecting-memory-leaks-with-windbg-the-modern-and-free-way/ windbg+DebugCRT ヒープは大丈夫です!

于 2012-05-31T03:11:31.757 に答える