问题标签 [visual-leak-detector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
291 浏览

c++ - 打印到控制台的警告消息不会导致构建失败

当错误打开并且警告级别升至最大值时,我会收到警告。我已经在我的单元测试中集成了VLD 。当我故意创建内存泄漏时,VLD 在 Visual Studio 输出控制台和警告控制台中打印一个警告。

警告的格式如下warning : Visual Leak Detector detected memory leaks!

但是,Visual Studio 报告生成成功。作为错误的警告是否仅限于 Visual Studio 生成的警告?

0 投票
2 回答
5877 浏览

c++ - 使用视觉泄漏检测器

我有随机崩溃的 C++ 代码。在代码中我使用了一些 Qt 库。编译器是 MSVS 2010。根据一些可能是由于内存泄漏的建议,我开始使用 Visual Leak Detector 进行查找。我对 Visual Leak Detector 和内存泄漏检测非常陌生。

这是 main.cpp 中的代码:

并且MainWindow构造函数看起来像这样:

析构函数是:

根据一些建议,我刚刚安装它并得到以下结果:

我感谢任何帮助,以根据这些结果找出内存泄漏的来源。

0 投票
1 回答
928 浏览

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

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

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

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

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

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

0 投票
1 回答
1589 浏览

visual-c++ - 将 Visual 检漏仪附加到作为 Windows 服务运行的进程

如何使用Visual Leak Detector附加到作为 Windows 服务运行的进程。如果有人使用此工具检测服务的内存泄漏,请告诉我该过程。

我在源文件中包含“vld.h”,就像在文档中一样。

0 投票
1 回答
1335 浏览

c++ - Crypto++ 多字节/unicode 问题

我在我的项目中使用 Crypto++ 库,但我收到以下消息:

内存完整性检查失败。这可能是由调试断点或 DLL 重定位引起的。

并且 Visual Leak Detector 检测到大量内存泄漏,但我会正确调用 dctor。

我已经使用 msvc-2010 (MultiByte) 构建了 Crypto,并且正在使用来自另一个库 (UNICODE) 的 cryptopp

这很危险吗?

0 投票
0 回答
630 浏览

visual-c++ - 为什么 Visual Leak Detector 不报告某些堆栈帧的文件和行号?

在我的 Visual Leak Detector 输出中,我自己的代码中的一些(不是全部)帧出现了“文件和行号不可用”:

一个类似的问题表明我可能缺少我的 PDB 文件,但我为DBGHELP_DBGOUT每个线程设置了环境变量,据报道 PDB 文件已正确解析:

那么为什么 Visual Leak Detector 不给我一些帧的文件和行号呢?

0 投票
2 回答
1075 浏览

c++ - 从 QObject 继承时如何修复内存泄漏?

我有一个简单的课程:

Visual Leak Detector 此时指向内存泄漏:

我如何解决它?我不坚持这是最好的解决方案,但我只是从 QT 开始,我不明白为什么我在这里泄漏内存。

0 投票
5 回答
7787 浏览

c++ - 包含 vld.h 后“应用程序无法正确启动”

我在 Visual Studio 2010 的 Win32 项目中包含了 vld.h、vld.lib 和 vld_x86.dll。它可以正确构建,但是当我执行时,它会因以下消息而崩溃:

我用 Dependency Walker 运行它,但它并排显示错误如下:

我尝试了各种方法,包括按照此处的建议修改清单:

只有当我在 vld.h 上注释以下行时,它才能正常运行

但是,如果我注释掉该行,则 vld 根本不会输出任何内容(就像没有 vld 集成一样)

以前有人遇到过这个问题吗?任何建议将不胜感激,在此先感谢!

0 投票
2 回答
2403 浏览

c++ - COM 注册失败,错误代码 0xC0000005

我正在开发一个包含多个 C++ COM Dll 的遗留项目。每次在调试配置上构建解决方案时,构建过程都会为每个 COM 项目提供错误:

我最近加入了这个项目,所以当我询问它时,我被告知每个人都忽略这些错误,因为解决方案在第二次构建时成功构建。

我决定深入挖掘,似乎 COM 注册本身成功(这解释了为什么第二次构建没有重新尝试注册),但是对 regsvr32 的调用返回错误代码(0xC0000005)。这就是构建失败的原因。

我还尝试从自定义构建步骤中删除注册,而是选择从链接器属性表“Register Output=YES”中注册,并得到相同的错误。

我尝试使用其中一个 dll 调试 regsvr32 并发现以下内容:

  1. 起初我无法在 DllRegisterServer 中设置断点,然后我尝试调试 regsvr32 的 X86 版本(来自 Windows\SysWOW64),然后才能在 DllRegisterServer 上中断。有人可以解释一下吗?

  2. DllRegisterServer 成功并返回 S_OK。

  3. DllRegisterServer 返回后,抛出异常,异常和堆栈跟踪如下:

regsvr32.exe 中 0x759849c1 处的第一次机会异常:0xC0000005:访问冲突读取位置 0x005bf028。

那么您对此有何看法?我是否应该像团队其他成员一样忽略它(产品在开发和生产中运行良好)?

您知道为什么即使注册成功我也会遇到访问冲突吗?注册 COM dll 后是否还有其他进程/逻辑运行?还有其他方向吗?

这是处理注册的类的代码:

0 投票
1 回答
9421 浏览

c++ - Visual Leak Detector 不报告泄漏

我对使用 Visual Studio 2013 有点陌生,我正在尝试让 Visual Leak Detector(2.3 版)工作,以便我可以检查我的项目是否存在内存泄漏。

我已经安装并添加了 C:\Program Files (x86)\Visual Leak Detector\include 到我的包含目录

和 C:\Program Files (x86)\Visual Leak Detector\lib\Win32 到我的库目录(都用于调试模式)。

我使用调试菜单(或按 f5)构建并运行以下简单程序:

泄漏在这里很明显(并且是故意的),以测试功能,但这是我得到的报告:

有任何想法吗?

编辑:我应该指出添加

在我的代码的开头和

在 main() 结束之前,实际上确实导致 Visual Studio 的内置泄漏检测报告泄漏,但是 Visual 泄漏检测器仍然通过说没有检测到内存泄漏并且不提供任何信息来跟踪此报告。