2016-08-17 11 views
0

をcrtdbgと比べて印刷されません。ビジュアル漏れ検出器は、任意のリークが、私はこの質問のために多くのことを検索しましたが、それのために、まだ解決策を見つけることができ

私は最近、VLD 2.5をダウンロードし、私は私がパッケージで提供されるテストを実行すると思った私のプロジェクトでそれを使用したい前に、両方のVisual Studio 2013および2015のために、最初からそれをコンパイル。しかし、すべてのテストは失敗します。 Output of vldmfc.exe

ここでのポイントは:CRTは、漏れを検出することによって割り当てられたCStringオブジェクト

すべてのテストスイートのための同じ現象が、MFC-テストアプリケーションは以下を出力https://vld.codeplex.com/workitem/10617

で報告しましたアプリケーション、VLDは行いません。

私には何が欠けていますか?

+1

これは、プログラムの初期化時に割り当てられ、それがCRTDBGは、その出力を出力した後にリリースさプログラム全体の寿命を持っているデータであるかもしれません。私。偽陽性VLDは後でフックを持っているかもしれないので、リリースを見るか、この特殊なケースについて知っていて、それを報告しないかもしれませんか? –

+0

いいえ、それは問題になる可能性がありますが、** new **はVLDの初期化後に確実に行われます。 VLDは、crtのすべてのエントリポイントにパッチを当て、私は朝にそれをデバッグしました。しかし、問題は、空きブロックが数えられないということです。それはVLDの問題のように見えますが、私はどこにいるのか分かりません。 – roalter

+0

[mcve]を提供できますか?それはあなたの問題を再現したい人を助けるでしょう。 – Yakk

答えて

0

はそれのための解決策を見つけました。グローバルフラグは永久に設定されます。このようなエラーが発生した場合は、リセットする必要があります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Managerを参照し、GlobalFlagを0にリセットしてください(またはgflags.exeを使用してください)。

乾杯、 ルイス。

関連する問題