Visual studio 我可以从堆快照中确定内存泄漏的原因吗?
关闭时检测到内存泄漏,我想解决它。我已经用智能指针取代了我唯一使用的Visual studio 我可以从堆快照中确定内存泄漏的原因吗?,visual-studio,visual-c++,memory-leaks,Visual Studio,Visual C++,Memory Leaks,关闭时检测到内存泄漏,我想解决它。我已经用智能指针取代了我唯一使用的new,但是我使用了相当多的裸char[],我实在没有时间检查我在项目中使用的每个指针 我可以从这个堆快照中找出内存泄漏的原因吗 有没有办法下载此文件并在其中搜索特定的内存位置 我是不是浪费时间来诊断这个问题,因为Windows无论如何都会清理内存 我可以从这个堆快照中找出内存泄漏的原因吗 通常不会。您将需要至少2个快照,并对它们进行比较以找出差异。然后,您将浏览在这两个快照之间运行的代码,并查看差异的来源 这需要大量的训
new
,但是我使用了相当多的裸char[]
,我实在没有时间检查我在项目中使用的每个指针
- 我可以从这个堆快照中找出内存泄漏的原因吗
- 有没有办法下载此文件并在其中搜索特定的内存位置
- 我是不是浪费时间来诊断这个问题,因为Windows无论如何都会清理内存
但除此之外,你是对的:当进程终止时,Windows将释放内存。因此,重新启动该计划可能会有所帮助,这可能会在几个月内为客户提供解决方案。感谢您的快速回复。从您的回答来看,您似乎认为我正在发生内存泄漏,但据我所知,只有在关闭应用程序时才会发生内存泄漏。我现在给德莱克一个机会,我想我会看看情况如何。@Skewjo:对不起,我不知道应用程序将从原来的问题中终止。这些都是假阳性的可能性更高。也许你想试试,而不是介绍一个新的工具。谢谢你链接到另一个问题。我最终安装了这个新工具,它运行得非常好,这有助于我理解为什么堆快照无法识别泄漏。它在关闭程序后导致了惊人的内存泄漏,但[一致认为(至少关于第一次泄漏)可以安全地忽略外部库中的静态执行。]()