問題タブ [visual-leak-detector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ビルドに失敗せずにコンソールに出力される警告メッセージ
エラーがオンになり、警告レベルが最大に上昇したため、警告が表示されます。ユニットテストにVLDを統合しました。意図的にメモリリークを作成すると、VLDはVisualStudioの出力コンソールと警告コンソールに警告を出力します。
警告は次のようにフォーマットされますwarning : Visual Leak Detector detected memory leaks!
ただし、Visual Studioは、ビルドが成功したことを報告します。エラーとしての警告は、Visual Studioで生成された警告に限定されますか?
c++ - ビジュアルリークディテクターの使用
ランダムにクラッシュする C++ コードがあります。コードでは、いくつかの Qt ライブラリを使用しています。コンパイラは MSVS 2010 です。これはメモリ リークが原因である可能性があるといういくつかの提案に基づいて、Visual Leak Detector を使用してこれを調べ始めました。Visual Leak Detector とメモリ リーク検出は初めてです。
main.cpp のコードは次のとおりです。
また、MainWindow
コンストラクタは次のようになります。
そして、デストラクタは次のとおりです。
いくつかの提案に基づいて、インストールしたところ、次の結果が得られました。
これらの結果に基づいて、メモリ リークがどこから発生したかを特定するための助けをいただければ幸いです。
c++ - Visual Leak Detector が VS2012 の単体テストで機能しない
C++ コードの単体テストに Visual Studio 2012 の CppUnitTestFramework を使用しています。ここで、Visual Leak Detector を使用してメモリ リークをチェックしたいと考えています。だから私は入れた
私のテストクラスファイルに。のようなものを追加します
メモリリークを「シミュレート」するテストメソッドに。
すべてが正常にコンパイルおよびリンクされます。これは、VLD ディレクトリが指定されていることを意味します。しかし、テストはクラッシュします:
include ディレクティブを削除すると、テストは正常にパスします。Visual Studio テスト フレームワークと共に VLD を有効にする方法はありますか?
visual-c++ - Windows サービスとして実行されているプロセスにビジュアル リーク ディテクタを接続する
Visual Leak Detectorを使用して、Windows サービスとして実行されているプロセスにアタッチする方法。誰かがこのツールを使用してサービスのメモリ リークを検出したことがある場合は、その手順を教えてください。
ドキュメントにあるように、ソースファイルに「vld.h」を含めています。
c++ - Crypto++ マルチバイト/ユニコードの問題
プロジェクトで Crypto++ ライブラリを使用していますが、次のメッセージが表示されます。
メモリ内の整合性チェックに失敗しました。これは、デバッグ ブレークポイントまたは DLL の再配置が原因である可能性があります。
Visual Leak Detector は多くのメモリ リークを検出しますが、I'll dctor は正しく呼び出されます。
msvc-2010 (MultiByte) で Crypto をビルドし、別のライブラリ (UNICODE) の cryptopp を使用しています。
これは危険ですか?
c++ - vld.h をインクルードした後、「アプリケーションを正しく起動できませんでした」
vld.h、vld.lib、vld_x86.dll を Visual Studio 2010 の Win32 プロジェクトに含めました。正しくビルドされますが、実行すると次のメッセージが表示されてクラッシュします。
Dependency Walker で実行しましたが、次のようにサイド バイ サイド エラーが表示されます。
ここで提案されているように、マニフェストをいじるなど、さまざまな方法を試しました。
vld.h の次の行にコメントを付けた場合にのみ、適切に実行されます
ただし、その行をコメントアウトすると、vld は何も出力しません (vld 統合がない場合と同様)。
以前にこの問題を抱えている人はいますか?事前に感謝します。
c++ - COM 登録がエラー コード 0xC0000005 で失敗する
いくつかの C++ COM DLL を含むレガシー プロジェクトに取り組んでいます。ソリューションがデバッグ構成でビルドされるたびに、ビルド プロセスで各 COM プロジェクトのエラーが発生します。
私は最近このプロジェクトに参加したので、それについて尋ねたところ、ソリューションは 2 番目のビルドで正常にビルドされるため、誰もがこれらのエラーを無視すると言われました。
さらに詳しく調べてみると、COM 登録自体は成功しているように見えますが (2 番目のビルドで登録が再試行されなかった理由はこれで説明できます)、regsvr32 の呼び出しでエラー コード (0xC0000005) が返されます。そして、それがビルドの失敗です。
また、カスタム ビルド ステップから登録を削除しようとしましたが、代わりにリンカのプロパティ シート「Register Output=YES」から登録することを選択し、同じエラーが発生しました。
dll の 1 つを使用して regsvr32 をデバッグしようとしたところ、次のことがわかりました。
最初は DllRegisterServer にブレークポイントを設定できませんでした。次に、X86 バージョンの regsvr32 (Windows\SysWOW64 から) をデバッグしようとしたところ、DllRegisterServer でブレークできました。誰かがこれを説明できますか?
DllRegisterServer は成功し、S_OK を返します。
DllRegisterServer が戻った後、次の例外とスタック トレースと共に例外がスローされます。
regsvr32.exe の 0x759849c1 での初回例外: 0xC0000005: アクセス違反の読み取り場所 0x005bf028。
それで、これについてどう思いますか?チームの他のメンバーと同じように無視する必要がありますか (製品は開発と運用で正常に動作します)?
登録は成功しているのに、なぜアクセス違反が発生するのか分かりますか? COM dll が登録された後に実行される他のプロセス/ロジックはありますか? 他の方向は?
これは、登録を処理するクラスのコードです。
c++ - Visual Leak Detector がリークを報告しない
Visual Studio 2013 を使用するのは初めてで、プロジェクトのメモリ リークをチェックできるように、Visual Leak Detector (バージョン 2.3) を動作させようとしています。
インストール済みで、インクルード ディレクトリに C:\Program Files (x86)\Visual Leak Detector\include を追加しました。
および C:\Program Files (x86)\Visual Leak Detector\lib\Win32 をライブラリ ディレクトリにコピーします (どちらもデバッグ モード用)。
デバッグ メニューを使用して (または f5 キーを押して)、次の簡単なプログラムをビルドして実行します。
機能をテストするために、リークは明らかです (そして意図的です)。しかし、これは私が得たレポートです:
何か案は?
編集:追加することを指摘する必要があります
私のコードの先頭に
main() の終了直前に、実際には Visual Studio の組み込みのリーク検出がリークを報告しますが、Visual リーク検出器は引き続きこのレポートに従い、メモリ リークが検出されず、情報を提供しません。