有人可以解释Xcode中这些选项的作用吗?
它们是什么,它们做了什么以及它们对于调试/测试有多大用处?
感谢。
答案 0 :(得分:47)
Scribble将通过覆盖任何曾经在内存块中释放的数据而免费使用内存块,这很明显。 保护边缘和Guard Malloc将帮助您查找内存溢出和(在某种程度上)读取和写入保护内存块后使用,以便在滥用内存时使程序崩溃更明显。
答案 1 :(得分:5)
上面的“文档”链接一般是Xcode,但更具体地说RN-MallocOptions详细介绍了这些(和其他)选项。
Jim Kubicek在Debugging Smashed Memory in Obj-C中展示了一个很好的例子,包括重要的“如何在Xcode中启用这些?”问题:
打开“编辑方案”窗口并导航到“诊断”选项卡。您需要打开“启用Scribble”和“Malloc Stack”。 ...简而言之,“Enabled Scribble”将使分配器将0xAA写入新分配的内存,并将0x55写入解除分配的内存。 “Malloc Stack”将记录您记忆的分配和免费历史记录。
如果您已经阅读过这篇文章,您可能会对Apple的技术说明感兴趣: