使用XCode检测内存覆盖

时间:2015-10-03 12:49:06

标签: objective-c xcode memory memory-management memory-leaks

有没有办法检测以下场景,据我所知,在不好的地方覆盖内存?或者其他任何试图为NSString或类似的东西设置NSDictionary的人?

int a[6]; a[6] = 8

另外,为了确保我在我的应用程序中获得了大量的EXC_BAD_ACCESS KERN_INVALID_ADDRESS,并且从我看到的这些是由内存覆盖引起的。有没有其他方法来调试此崩溃,因为它们不会发生在我的设备/模拟器上,而是发生在我无法复制的某些情况下的用户。

1 个答案:

答案 0 :(得分:1)

有!

查看Xcode方案编辑器的“选项”面板。你可以启用malloc scribble,这会有所帮助。但是你可能想要的是防护页面。基本上,它在分配的开始或结束时创建一个不可访问的内存页面。如果您尝试读取或写入分配范围之外,则会导致访问崩溃。

详细信息:

https://developer.apple.com/library/mac/documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html