【发布时间】:2010-10-05 04:02:58
【问题描述】:
我担心我的某些代码会导致内存泄漏,我不确定如何检查它。有适用于 MacOS X 的工具吗?
谢谢
【问题讨论】:
标签: c++ macos memory-leaks heap-memory
我担心我的某些代码会导致内存泄漏,我不确定如何检查它。有适用于 MacOS X 的工具吗?
谢谢
【问题讨论】:
标签: c++ macos memory-leaks heap-memory
是的 - 有一个名为 MallocDebug 的应用程序作为 Xcode 包的一部分安装。
您可以在/Developer/Applications/Performance Tools 文件夹中找到它。
【讨论】:
Apple 在其开发人员页面上对如何在 OS X 上使用 MallocDebug 进行了很好的描述。
【讨论】:
当然,UNIX 提供了一种快速而肮脏的方法来检测内存泄漏......顶部。
启动您的应用并观察一段时间内分配给您的进程的系统内存。如果它在不应该的时候持续增长,那么可能存在内存泄漏。此时你突破Valgrind或使用MallocDebug等。
当然,如果您使用智能指针和/或 RAII,那么您的代码中不应该出现内存泄漏,对吧? ;)))
【讨论】:
解决内存错误、泄漏等问题的最佳工具是 Valgrind。开始使用here。你不需要在你的代码中做任何特别的事情,这将报告内存的分配位置(带有完整的堆栈跟踪,即使在 C 中也是如此)。此外,它还会检测对已释放内存的写入、未初始化的内存使用情况等等。
【讨论】: