有没有办法监视C ++ / MacOS中的堆使用情况?

时间:2009-02-03 14:20:19

标签: c++ macos memory-leaks heap

我担心我的一些代码会导致内存泄漏,而且我不确定如何检查它。是否有适用于MacOS X的工具或其他东西?

谢谢

4 个答案:

答案 0 :(得分:4)

是的 - 有一个名为 MallocDebug 的应用程序,它是作为Xcode包的一部分安装的。

您可以在/Developer/Applications/Performance Tools文件夹中找到它。

答案 1 :(得分:2)

Apple很好地描述了如何在开发者页面上的OS X上使用MallocDebug。

答案 2 :(得分:1)

当然,UNIX提供了一种检测内存泄漏的快速而肮脏的方法......顶部。

启动您的应用并观察分配给您的流程的系统内存。如果它不应该不断增长那么可能会有内存泄漏。此时你会突破Valgrind或使用MallocDebug等。

当然如果您使用智能指针和/或RAII,那么您的代码中不应该有内存泄漏,对吧? ;)))

答案 3 :(得分:0)

内存错误,泄漏等的最佳工具周期是Valgrind。开始使用here。您不需要在代码中执行任何特殊操作,这将报告内存的分配位置(使用完整的堆栈跟踪,即使在C中)。此外,它还会检测对释放内存的写入,未初始化的内存使用情况等等。