【问题标题】: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

标签: iphone ios xcode asihttprequest nsautoreleasepool


【解决方案1】:

这可能表明您正在其他地方踩踏内存。我首先打开memory diagnostics 并查找错误。最可能导致此类错误的地方是 C 代码,尤其是在使用 C 数组或 C 字符串时。您可能在分配的内存之外写入,或者在释放内存后写入内存。

compiler bugs 有时会导致此类问题,但这种情况非常罕见,我会首先强烈怀疑您的代码。

【讨论】:

    【解决方案2】:

    正如 Rob 所指出的,这可能表明您在其他地方滥用内存。从 Xcode 8 开始打开内存管理诊断:

    • 点击Xcode中的scheme菜单,选择底部的“Edit Scheme...”。
    • 在“运行”步骤中,转到“诊断”选项卡。
    • 在内存管理下,打开所有四个选项。我通常认为 Guard Malloc 可以发现最多的问题,但它们都很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 2013-04-18
      • 2014-09-02
      • 2011-08-04
      • 2021-10-28
      相关资源
      最近更新 更多