什么是C / C ++程序及其插件DLL最好的空闲内存泄漏检测器?

时间:2020-03-05 18:42:44  来源:igfitidea点击:

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

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

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

解决方案

回答

回答

我个人使用Visual Leak Detector,尽管它会在泄漏大块时引起较大的延迟(它会显示整个泄漏块的内容)。

回答

如果我们不想重新编译(如Visual Leak Detector要求的那样),我建议我们使用WinDbg,它既强大又快速(尽管使用起来并不像人们期望的那么容易)。

另一方面,如果我们不想弄乱WinDbg,可以看看UMDH,它也是由Microsoft开发的,更容易学习。

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

  • 使用Windbg进行内存泄漏检测
  • MFC中的内存泄漏检测
  • 常见的WinDbg命令(按主题分组)
  • C / C ++内存损坏和内存泄漏
  • 内存管理参考
  • 使用LeakDiag调试非托管内存泄漏
  • 堆:乐趣和痛苦

标题数量不匹配