Visual Leak DetectorをVisual Studio 2017 with Platform Toolset "Visual Studio 2017"で使用しようとしています。インクルードディレクトリとライブラリディレクトリを設定しました。デバッグ情報の生成はオンです。 exeのシンボルが読み込まれます。
(プラットフォームツールセットを「Visual Studio 2013」に変更すると機能します)
Toolset "Visual Studio 2017"では、VLDはリークを検出していますが、行番号を解決していません。
Visual Leak Detector read settings from: C:\Program Files (x86)\Visual Leak Detector\vld.ini
Visual Leak Detector Version 2.5.1 installed.
WARNING: Visual Leak Detector detected memory leaks!
---------- Block 1 at 0x005ECDB8: 400 bytes ----------
Leak Hash: 0x36672640, Count: 1, Total 400 bytes
Call Stack (TID 6284):
ucrtbased.dll!malloc()
ConsoleApplication6.exe!0x00361FAD()
ConsoleApplication6.exe!0x003618BC()
ConsoleApplication6.exe!0x00361828()
ConsoleApplication6.exe!0x00361883()
ConsoleApplication6.exe!0x00361F7E()
ConsoleApplication6.exe!0x00361DE0()
ConsoleApplication6.exe!0x00361C7D()
ConsoleApplication6.exe!0x00361F98()
kernel32.dll!BaseThreadInitThunk() + 0x12 bytes
ntdll.dll!RtlInitializeExceptionChain() + 0x63 bytes
ntdll.dll!RtlInitializeExceptionChain() + 0x36 bytes
多分誰かが行番号解決を可能にする方法を知っています。
ありがとう
部分的なPDBを無効にしてみてください。プロジェクトのプロパティで、[リンカー]-[すべてのオプション]-[デバッグ情報の生成]をクリックし、デフォルトの[高速リンク用のデバッグ情報の生成]ではなく[デバッグ情報の生成]を選択します。
リンカー設定を/ DEBUG:FULLに変更するだけでは十分ではありませんでした。 / DEBUG:FASTLINKを使用しても問題ありません。
しかし、私は来るものの代わりにVisual Studio自体から一致する最新のdbghelp.dllを使用する必要がありましたVLDを使用(x86モードでVLDバージョン2.5.1を使用しています)。
その名前のDLLがいくつかあります。私はこれを使用して、プロジェクトのランタイムフォルダーにコピーしました(VLDインストールから最初にコピーしたフォルダーを置き換えます)。
X:\ Program Files(x86)\ Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\TestPlatform\Extensions\Cpp
注:お持ちのIDEバージョンによっては、「Professional」を「Community」に置き換える必要がある場合があります。