51

我有一个 .exe 和许多 .exe 加载的插件 .dll 模块。(我有两者的源代码。)跨平台(有源代码)解决方案将是理想的,但该平台可以缩小到 WinXP 和 Visual Studio(在我的情况下为 7.1/2003)。

内置的 VS 泄漏检测器仅给出调用 new/malloc 的行,但我有一个用于分配的包装器,因此最好使用完整的符号堆栈跟踪。

检测器还能够检测 .exe 及其随附的插件 .dll 模块中的泄漏。

4

7 回答 7

37

我个人使用Visual Leak Detector,尽管当大块泄漏时它会导致很大的延迟(它显示整个泄漏块的内容)。

于 2008-08-25T10:03:23.780 回答
18

如果您不想重新编译(因为 Visual Leak Detector 需要),我会推荐WinDbg,它既强大又快速(尽管它不像人们希望的那样易于使用)。

另一方面,如果你不想乱用 WinDbg,你可以看看UMDH,它也是由微软开发的,它更容易学习。

查看这些链接以了解有关 WinDbg、内存泄漏和内存管理的更多信息:

于 2009-08-10T07:57:41.780 回答
8

我对Rational Purify有很好的体验。我也听说过有关 Valgrind 的好消息

于 2008-08-25T07:54:46.383 回答
3

至于我,我使用Deleaker来定位泄漏。我很满意。

于 2011-11-18T10:03:02.400 回答
2

我免费提供的内存分析器MemPro允许您比较 2 个快照并为所有分配提供堆栈跟踪。

于 2012-04-15T15:17:10.510 回答
1

在 Code Project 上尝试Jochen Kalmbach 的 Memory Leak Detector 。我上次检查时,最新版本的 URL 位于评论中。

于 2008-08-25T09:52:34.103 回答
1

正如我的几个朋友所发布的,有许多免费的 C++ 泄漏检测器。所有这些都会在运行代码时产生开销,大约慢 20%。我更喜欢Visual C++ 2008/2010/2012 的 Visual Leak Detector,你可以从这里下载源代码 -在此处输入链接描述

于 2014-02-20T11:58:21.607 回答