我尝试在Visual Studio 2017中使用Visual Leak Detector和Platform Toolset" Visual Studio 2017" 我已经设置了include目录和库目录。正在生成调试信息。加载了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
也许有人知道一种启用行号解析的方法。
由于
答案 0 :(得分:9)
尝试禁用部分PDB:在项目属性中单击链接器 - 所有选项 - 生成调试信息,选择“生成调试信息”而不是默认“为更快的链接生成调试信息”。
答案 1 :(得分:1)
仅将链接器设置更改为 / DEBUG:FULL 对我来说还不够。可以使用 / DEBUG:FASTLINK 。
但是,我必须使用Visual Studio本身中匹配的,最新的 dbghelp.dll ,而不是VLD附带的版本(我使用的是VLD版本2.5.1(在x86模式下)。
有几个使用该名称的DLL。我将其复制到项目的运行时文件夹中(替换了我最初从VLD安装中复制到的那个文件夹)。
X:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ TestPlatform \ Extensions \ Cpp
注意:根据您拥有的IDE版本,您可能必须将“专业”替换为“社区”。