自动释放池页面损坏
Posted
技术标签:
【中文标题】自动释放池页面损坏【英文标题】:Autorelease pool page corrupted 【发布时间】:2013-04-01 13:16:04 【问题描述】:每当我使用 ASIHTTPRequest 进行网络服务调用时,我都会随机遇到以下崩溃:
autorelease pool page 0x9418000 corrupted
magic a1a1a100 4f545541 454c4552 21455341
pthread 0xb0103000
我的代码是 ARC-fied 并使用 -fno-objc-arc 用于 ASIHTTP 类的 .m 文件。
是否有人对此有所了解,或者之前是否有人遇到过此类问题?提前致谢!
【问题讨论】:
我希望那是-fno-objc-arc
而不是-fno -objc -arc
【参考方案1】:
这可能表明您正在其他地方踩踏内存。我首先打开memory diagnostics 并查找错误。最可能导致此类错误的地方是 C 代码,尤其是在使用 C 数组或 C 字符串时。您可能在分配的内存之外写入,或者在释放内存后写入内存。
compiler bugs 有时会导致此类问题,但这种情况非常罕见,我会首先强烈怀疑您的代码。
【讨论】:
【参考方案2】:正如 Rob 所指出的,这可能表明您在其他地方滥用内存。从 Xcode 8 开始打开内存管理诊断:
点击Xcode中的scheme菜单,选择底部的“Edit Scheme...”。 在“运行”步骤中,转到“诊断”选项卡。 在内存管理下,打开所有四个选项。我通常认为 Guard Malloc 可以发现最多的问题,但它们都很有用。【讨论】:
以上是关于自动释放池页面损坏的主要内容,如果未能解决你的问题,请参考以下文章