2

我刚刚开始使用Visual Leak Detector for Visual C++ 2008/2010

当我在小型应用程序上运行它时(只有几行未删除的分配),它工作得很好。

现在我想将它运行到我更大的应用程序(wxWidgets 应用程序,2 个线程)中,但是当我包含

#include <vld.h>

我的应用程序没有完全启动。创建 Gui 时它开始循环。Somethismes 应用程序完全加载,但是当我按下某个按钮时再次卡住......

当我点击暂停按钮时,要查看正在处理的代码,我只看到

堆栈:ntdll,内核...

有人遇到类似的问题吗?

有什么办法让它工作吗?

4

2 回答 2

3

Visual Leak Detector 使应用程序运行非常缓慢,请耐心等待。

您正在运行单个二进制文件吗?

当我的程序被拆分为运行时加载的主可执行文件和库时,我遇到了问题。

解决方案是在任何地方执行#include,尤其是可执行文件。

请注意,如果您想针对代码的特定部分,可以使用 VLDDisable 和 VLDEnable,请注意这些工作每个线程。在一个线程中禁用不会修改其他线程中发生的事情。

于 2011-04-20T05:46:27.333 回答
0

这不完全是这个特定问题的答案,但它解决了我的问题,我想在其他人可能会发现它对他们有帮助的地方记录它。

我正在将一个程序与 vld 链接并得到

fatal error LNK1120: 1 unresolved externals
error LNK2001: unresolved external symbol "__declspec(dllimport) class     VisualLeakDetector vld" (__imp_?vld@@3VVisualLeakDetector@@A)

我做了一个 vld.lib 的垃圾箱,并注意到它有一个名为

      F26 __imp_?g_vld@@3VVisualLeakDetector@@A

注意“g_”

所以改变了我的 vld.h 从

#pragma comment(linker, "/include:__imp_?vld@@3VVisualLeakDetector@@A")
to
#pragma comment(linker, "/include:__imp_?g_vld@@3VVisualLeakDetector@@A")

然后它链接并工作得很好。

再次,希望谷歌能够为有 vld 链接问题的人找到这个答案。

于 2014-05-08T15:43:27.200 回答