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

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

【问题讨论】:

标签: c memory memory-management garbage-collection


【解决方案1】:

Valgrind 是你最好的选择

http://valgrind.org/

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 您之前没有看到泄漏检测工具这一事实并不能让您在提供此类错误答案之前免于搜索某些关键字。
        • 我见过泄漏检测工具,但它们会检测到并且不会主动释放内存
        猜你喜欢
        • 2011-01-07
        • 2010-11-24
        • 2011-10-15
        • 1970-01-01
        • 2011-09-17
        • 2010-11-06
        • 1970-01-01
        • 2012-07-16
        • 2023-03-19
        相关资源
        最近更新 更多