===============================内存分配和释放记录=======================================
XCODE 提供了堆分配地址的分配和释放记录,可以方便记录某段内部是在哪个栈调用中被申请和释放的,这样就可以定位访问已释放内存地址引起的野指针崩溃总是。
前提:
XCODE 中运行选项中配置值:(或在scheme中加上)
MallocStackLoggingNoCompact = 1
MallocStackLogging = 1
运行中或崩溃时,比如内存为0x1234, 被调试进程PID为555,则运行:
malloc_history 555 0x1234 > 1.txt
打开1.txt文件就可以查看历史记录,很详细,对调试内存很有帮助。
----
scheme也有更多内存调试选项,也很强大。
malloc_history还有更多用法, 参考命令帮助。
参考:
https://developer.apple.com/library/ios/documentation/Performance/Conceptual/ManagingMemory/Articles/FindingPatterns.html
======================================================================