我有.exe和.exe加载的许多插件.dll模块。 (我有两者的来源。)跨平台(带源)解决方案是理想的,但平台可以缩小到WinXP和Visual Studio(在我的情况下为7.1 / 2003)。
内置VS泄漏检测器仅提供调用new / malloc的行,但我有一个分配包装器,因此完整的符号堆栈跟踪将是最好的。
检测器还能够检测.exe及其附带的插件.dll模块中的泄漏。
答案 0 :(得分:36)
我个人使用Visual Leak Detector,但是当大块泄漏时它会导致大的延迟(它会显示整个泄漏块的内容)。
答案 1 :(得分:17)
如果您不想重新编译(如Visual Leak Detector所要求的那样),我会推荐WinDbg,它既强大又快速(尽管它并不像人们想象的那样容易使用)。
另一方面,如果你不想搞乱WinDbg,你可以看看UMDH,它也是由微软开发的,它更容易学习。
请查看这些链接,以便了解有关WinDbg,内存泄漏和内存管理的更多信息:
答案 2 :(得分:8)
我与Rational Purify有过良好的经历。我也听说过Valgrind的好话
答案 3 :(得分:3)
至于我,我使用deleaker来定位泄漏。我很高兴。
答案 4 :(得分:2)
我的免费内存分析器MemPro允许您比较2个快照,并为所有分配提供堆栈跟踪。
答案 5 :(得分:1)
在代码项目上尝试Jochen Kalmbach's Memory Leak Detector。 我上次检查时,评论中的某个地址是最新版本的URL。
答案 6 :(得分:1)
正如我的几位朋友发布的那样,C ++有许多免费的泄漏探测器。 所有这些都会在运行代码时造成开销,大约慢20%。 我为Visual C ++ 2008/2010/2012提供 Visual Leak Detector ,您可以从 - enter link description here下载源代码。