我担心我的一些代码会导致内存泄漏,但我不确定如何检查。在MacOS X上是否有工具或其他东西可以使用?
谢谢
我担心我的一些代码会导致内存泄漏,但我不确定如何检查。在MacOS X上是否有工具或其他东西可以使用?
谢谢
是的 - 有一个名为MallocDebug的应用程序,这个应用程序是Xcode软件包的一部分。
你可以在/Developer/Applications/Performance Tools
文件夹中找到它。
苹果在其开发者页面上提供了如何在OS X上使用MallocDebug的良好描述。
当然,UNIX提供了一种快速而简单的方法来检测内存泄漏... top。
启动您的应用程序并观察分配给您的进程的系统内存随时间变化。如果它在不应该增长的情况下持续增长,则很可能存在内存泄漏。此时,您可以使用Valgrind或使用MallocDebug等工具。
当然,如果您使用智能指针和/或RAII,那么您的代码中就不应该有内存泄漏了,对吧?;)))
处理内存错误、泄漏等问题的最佳工具是Valgrind。在这里开始使用。您不需要在代码中进行任何特殊操作,它会报告内存分配的位置(包括完整的堆栈跟踪,即使在C语言中也是如此)。此外,它还可以检测对已释放内存的写入、未初始化的内存使用等等。