Visual Leak Detector 不适用于 VS2012 中的单元测试

Posted

技术标签:

【中文标题】Visual Leak Detector 不适用于 VS2012 中的单元测试【英文标题】:Visual Leak Detector not working with Unit Test in VS2012 【发布时间】:2013-04-26 09:06:32 【问题描述】:

我正在使用 Visual Studio 2012 的 CppUnitTestFramework 对我的 c++ 代码进行单元测试。现在我想使用 Visual Leak Detector 检查内存泄漏。所以我把

#include "vld.h"

进入我的测试类文件。我添加了类似的东西

new MyClass();

到“模拟”内存泄漏的测试方法。

一切编译和链接都很好,这意味着指定了 VLD 目录。但是测试崩溃了:

------ Run test started ------
The active Test Run was aborted because the execution process exited unexpectedly. To investigate further, enable local crash dumps either at the machine level or for process vstest.executionengine.x86.exe. Go to more details: http://go.microsoft.com/fwlink/?linkid=232477
========== Run test finished: 0 run (0:00:02,3841194) ==========

当我删除包含指令时,测试成功通过。有没有办法将 VLD 与 Visual Studio 测试框架一起启用?

【问题讨论】:

【参考方案1】:

我有一个类似的问题,通过将 vld bin 目录中的 Microsoft.DTfW.DHL.manifest 复制到单元测试可执行目录中来解决。

【讨论】:

奇怪。我尝试将其复制到 Microsoft Visual Studio 11.0/Common7/IDE/CommonExtensions/Microsoft/TestWindow。一段时间以来,这确实有效(尽管我不知道是否需要重新启动 VS)。我可以运行测试并在调试它们时收到内存泄漏报告。但突然它停止工作了。我做的最后一件事是注释掉整个测试类。无论如何,在那之后我试图再次修复它都没有成功。我回到“它只是不工作”。

以上是关于Visual Leak Detector 不适用于 VS2012 中的单元测试的主要内容,如果未能解决你的问题,请参考以下文章

Visual Leak Detector使用注意事项

Visual Leak Detector 2 2 3 Visual C++内存检测工具

Visual Leak Detector 报告 qt 库泄漏

Visual Leak Detector配置项 AggregateDuplicates

Visual Leak Detector配置项 StackWalkMethod

vld(Visual Leak Detector) 内存泄露检测工具