内存泄漏检测和分析工具

Posted

技术标签:

【中文标题】内存泄漏检测和分析工具【英文标题】:Memory leak detection and analysis tool 【发布时间】:2015-06-16 03:18:04 【问题描述】:

实际上,我知道有必要释放使用 malloc() 分配的内存,但我想知道如果我忘记使用 free() 收集它,是否可以知道还有一些内存没有被收集。

【问题讨论】:

查看valgrind。 Detecting memory leaks in C programs?的可能重复 除了接受的答案之外,这里可能还有更多有用的信息:***.com/questions/9074229/… 【参考方案1】:

Valgrind 是你最好的选择

http://valgrind.org/

【讨论】:

【参考方案2】:

除了 valgrind 答案之外,您还可以将可执行文件链接到 Boehm GC – C 垃圾收集器,该垃圾收集器可能会在泄漏检测模式下运行。

https://en.wikipedia.org/wiki/Boehm_garbage_collectorhttp://www.hboehm.info/gc/http://www.hboehm.info/gc/leak.html

【讨论】:

【参考方案3】:

你可以使用像 valgrind 这样的工具。查看此video 以了解如何使用它,由 edx 上提供的哈佛 CS50 提供。它很好地解释了如何使用它,以及一些关于正确和错误代码的示例。

【讨论】:

【参考方案4】:

您尝试做的事情是不可能的。只需跟踪您分配的所有内存并在需要时将其擦除

【讨论】:

您之前没有看到泄漏检测工具这一事实并不能让您在提供此类错误答案之前免于搜索某些关键字。 我见过泄漏检测工具,但它们会检测到并且不会主动释放内存

以上是关于内存泄漏检测和分析工具的主要内容,如果未能解决你的问题,请参考以下文章

使用UMDH检测内存泄漏

检测内存泄漏

Perl 内存使用分析和泄漏检测?

C的内存泄漏检测器?

如何使用工具进行C/C++的内存泄漏检测

常用的内存泄漏检查工具