web-dev-qa-db-ja.com

Visual Studio 2017のVisual Leak Detector:ソースコード行番号なし

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

多分誰かが行番号解決を可能にする方法を知っています。

ありがとう

10
pulp

部分的なPDBを無効にしてみてください。プロジェクトのプロパティで、[リンカー]-[すべてのオプション]-[デバッグ情報の生成]をクリックし、デフォルトの[高速リンク用のデバッグ情報の生成]ではなく[デバッグ情報の生成]を選択します。

9
Artem Razin

リンカー設定を/ 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」に置き換える必要がある場合があります。

1
Philip Allgaier