对于 C/C++ 程序及其插件 DLL,最好的免费内存泄漏检测器是啥? [关闭]
Posted
技术标签:
【中文标题】对于 C/C++ 程序及其插件 DLL,最好的免费内存泄漏检测器是啥? [关闭]【英文标题】:What is the best free memory leak detector for a C/C++ program and its plug-in DLLs? [closed]对于 C/C++ 程序及其插件 DLL,最好的免费内存泄漏检测器是什么? [关闭] 【发布时间】:2010-09-06 17:53:51 【问题描述】:我有一个 .exe 和许多 .exe 加载的插件 .dll 模块。 (我有两者的源代码。)跨平台(有源代码)解决方案是理想的,但平台可以缩小到 WinXP 和 Visual Studio(在我的例子中是 7.1/2003)。
内置的 VS 泄漏检测器仅给出调用 new/malloc 的行,但我有一个用于分配的包装器,因此最好使用完整的符号堆栈跟踪。
检测器还能够检测 .exe 及其随附的插件 .dll 模块中的泄漏。
【问题讨论】:
saunalahti.fi/~tarmpika/diagnostic 我尝试了很多内存泄漏检测器,很难将它们全部计算在内。其中一些崩溃了,其中一些产生了无效的结果,其中一些根本没有帮助。支持托管/本机/32 位和 64 位架构。不过这暂时不是免费的。 已发布源代码:sourceforge.net/projects/diagnostic 哦,太好了! (顺便说一句,我没有意识到这变得离题了.... 5.5 年后!:)) 耸耸肩 这仍然与编程超级相关。不知道这还会去哪里。 【参考方案1】:我个人使用Visual Leak Detector,虽然它会在大块泄漏时造成很大的延迟(它会显示整个泄漏块的内容)。
【讨论】:
非常有用且非常简单的工具!我喜欢。感谢您的提示! 诊断 - 内存泄漏检测:sourceforge.net/projects/diagnostic 与 Visual Leak Detector 相比,它不需要与宿主项目进行任何集成(除非您希望将内存泄漏检测作为内置应用程序)【参考方案2】:如果您不想重新编译(因为 Visual Leak Detector 需要),我会推荐 WinDbg,它既强大又快速(尽管它不像人们希望的那样易于使用)。
另一方面,如果你不想乱用WinDbg,你可以看看UMDH,它也是微软开发的,更容易学习。
查看这些链接以了解有关 WinDbg、内存泄漏和一般内存管理的更多信息:
Memory Leak Detection Using Windbg Memory Leak Detection in MFC Common WinDbg Commands (Thematically Grouped) C/C++ Memory Corruption And Memory Leaks The Memory Management Reference Using LeakDiag to Debug Unmanaged Memory Leaks Heap: Pleasures and Pains【讨论】:
不幸的是,第一个链接不再起作用... 我添加了更多链接并删除了失败的链接。希望对您有所帮助!【参考方案3】:我对@987654321@ 有很好的体验。我也听说过有关 Valgrind 的好消息
【讨论】:
【参考方案4】:我使用Deleaker 来定位泄漏点。我很高兴。
【讨论】:
【参考方案5】:我的免费内存分析器 MemPro 允许您比较 2 个快照并提供所有分配的堆栈跟踪。
【讨论】:
【参考方案6】:在代码项目上尝试Jochen Kalmbach's Memory Leak Detector。 我上次检查时,最新版本的 URL 位于 cmets 中的某个位置。
【讨论】:
【参考方案7】:正如我的几个朋友所发布的,有许多免费的 C++ 泄漏检测器。 所有这些都会在运行代码时产生开销,大约慢 20%。 我更喜欢 Visual Leak Detector for Visual C++ 2008/2010/2012,您可以从 -enter link description here 下载源代码。
【讨论】:
以上是关于对于 C/C++ 程序及其插件 DLL,最好的免费内存泄漏检测器是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章