问题标签 [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 投票
4 回答
2857 浏览

c++ - 视觉泄漏检测器在 ntdll.dll 上抛出“访问冲突读取位置”

当我包括:

在我的 stdafx.h 中运行我的程序,它说安装了 Visual Leak Detector 2.5。我可以很好地运行我的程序,但是当它退出时,我得到了这个错误:

但是我只有在启用 Visual Leak Detector 时才会得到这个,所以我的猜测是这就是问题所在。

然而,我确实找到了这个站点:Visual Leak Detector Forums有人提到了一个修复程序,但它导致了一个带有 vld.cpp 文件的 github 存储库,我不知道如何处理它。

似乎该错误是由 Windows 10 周年更新引起的,但我不确定。

0 投票
1 回答
1177 浏览

c++ - 将 Visual Leak Detector 与 QApplication 一起使用

我正在尝试定位我的 Qt 应用程序中的内存泄漏。我已经将Visual Leak Detector用于其他一些项目,但 VLD 将输出写入控制台窗口。

我现在的问题是,当使用 QApplication 时,没有显示控制台窗口,因此没有显示 VLD 的输出。我正在使用带有 Qt VS Tools 插件的 Visual Studio 2015。

有没有办法强制应用程序显示控制台窗口?或者可能是一种将 VLD 生成的输出写入文件的方法?

我如何启动我的应用程序:

0 投票
2 回答
9796 浏览

visual-studio-2017 - 带有 Visual Studio 2017 的 Visual Leak Detector:没有源代码行号

我尝试使用带有平台工具集“Visual Studio 2017”的 Visual Studio 2017 的 Visual Leak Detector 我已经设置了包含目录和库目录。正在生成调试信息。exe 的符号已加载。

(如果我将平台工具集更改为“Visual Studio 2013”​​,它会起作用)

使用工具集“Visual Studio 2017”VLD 正在检测泄漏但不解析行号:

也许有人知道一种启用行号解析的方法。

谢谢

0 投票
1 回答
730 浏览

c++ - VLD 使应用程序崩溃

全部,

我正在编写一个根据 MSVC 显然存在内存泄漏的应用程序。此应用程序由二进制可执行文件和几个 DLL 组成。应用程序和 DLL 都使用“动态链接”。

我还有一个书面应用程序,它只包含一个静态链接的二进制文件。

我试图将 VLD 应用于两者。

使用第二个应用程序没有问题。它可以启动并且执行良好。

使用第一个应用程序 - 我什至无法启动它。它总是在启动时崩溃。

我将 VLD 添加到 mai 可执行文件和我正在生成的所有 DLL 中。

所以我想知道崩溃可能是什么问题 - 无论是多个 DLL 还是我使用“动态链接”的事实。

我还想知道获取 VLD 的源代码并尝试将其与项目一起编译是否会有所帮助,我最终将能够运行应用程序并查看泄漏。

感谢您提供解决崩溃的任何指示。


编辑1:

这是崩溃的回溯:

ntdll.dll!77c40e92()
[下面的帧可能不正确和/或丢失,没有为 ntdll.dll 加载符号] vld_x86.dll!04f9abf0()
vld_x86.dll!04fae9df()
vld_x86.dll!04faeb4d()
KernelBase.dll !75a241e6()
user32.dll!75f57433()
user32.dll!75f55ab6()
user32.dll!75f558c4()
ntdll.dll!77c496de()
ntdll.dll!77c49658()
ntdll.dll!77c57825()
ntdll.dll! 77c5b530()
ntdll.dll!77c6751f()
vld_x86.dll!04faf9b6()
vld_x86.dll!04fadd99()
msvcrt.dll!75c9b0f9()
KernelBase.dll!75a24093()
vld_x86.dll!04faf9b6()
vld_x86.dll!04faf9b6()
vld_x86.dll!04fade47()

0 投票
1 回答
323 浏览

c++ - Visual Leak Detector reports qt library leaks

I created a Qt 4.7.4 program and then included the vld library to detect memory leaks. The result is I get too many leaks that the majority are Qt library leaks, which is a strange. Has anyone encountered this problem before?

The memory_leak_report.txt is like this:

0 投票
1 回答
1641 浏览

visual-studio-2017 - Visual Studio 2017 更改 %(AdditionalIncludeDirectories)

https://kinddragon.github.io/vld/安装和卸载Visual Leak Detector后,它在默认的 VS2017 设置中留下了很多 Include/Lib 目录。

这对项目没有任何问题,但我只想知道,如何将其更改回默认值?Google 仅为旧版 Visual Studio 提供了答案。

以下是截图:

属性页

包括目录宏

0 投票
0 回答
1174 浏览

c++ - 在源代码中添加 Visual Leak Detector 的 vld.h 头文件用于内存泄漏

我正在尝试在我的 C++ 应用程序中使用 Visual Leak Detector(使用 Visual Studio 2013),在阅读了文档并修改Include DirectoriesLibrary Directories一个项目之后,我vld.h在我的一个文件中添加了标题cpp。正如文档中所写,我必须在源代码中的所有预编译头文件之后添加它。但是在我的源代码中添加标题后构建项目时,我收到以下错误:

[VLD COMPILE ERROR] #include "vld.h" should appear before #include <afxwin.h> in file stdafx.h

头文件位置消息

因此,当我将其添加到 stdafx.h 头文件中时,项目会构建,但我收到运行时错误消息: Unhandled exception at some_memory_location (vld_x64.dll) in product_debug_build.exe. Access violation reading location some_memory_location

访问冲突错误

当我将它放在我的任何cpp文件中的预编译头文件之前时,构建会跳过头文件的包含vld.h

跳过

但是当我构建整个解决方案时,我没有收到此消息,但是它不起作用(可能是因为我在预编译的标头之前添加了它?)。

我在这里做错了什么?

0 投票
2 回答
433 浏览

c++ - 程序并行 QThread 在应用程序退出时创建内存泄漏

我有一个更大的项目,有一个 GUI,我想在后台管理一些文件。我已经为此任务实现了一个新线程,并且在运行时,一切都很好。但是一旦我退出应用程序,就会visual-leak-detector发现 3-7 个内存泄漏。

我分离了我的线程代码并创建了一个新项目以使用最小的代码示例进行检查,但我仍然无法解决我的问题。

我认为这与主程序的事件循环有关。也许循环没有处理最后一个事件来删除我的线程类和线程本身。因为我在析构函数中停止并退出线程。但我不确定这一点。

这是我的最小代码:threadclass.hpp:

线程处理程序.hpp:

main.cpp 很糟糕,但似乎很好地模拟了我的主程序的行为:

这是 VLD 的输出:

更新1:我添加qDebug() << "ThreadClass Destructor";到析构函数中ThreadClass,我的新输出如下所示:

现在很明显,我的线程类的析构函数从未被调用,因此丢失在 void 中。但是为什么这不起作用呢?

更新 2:我在 ThreadHandler 中发现了一个问题:

我删除my_thread->quit()了,现在调用了 ThreadClass 的析构函数,但my_thread->wait()从未完成。

0 投票
1 回答
288 浏览

c++ - 内存泄漏与 CComPtr

我使用 crtdbg 检测泄漏位置,调用时出现内存泄漏new

spResult 是否需要执行任何步骤?

0 投票
1 回答
10002 浏览

visual-c++ - 如何在 Visual Studio 2019 上安装 Visual Leak Detector (VLD)?

我从Releases运行安装文件,并尝试遵循官方指南,但它仅包含旧版本的说明(Visual C++ 2010/2012/2013)。我没有找到那里提到的菜单。那么如何在 VS 2019 上安装 vld 呢?