iOS: com.apple.root.default-overcommit-priority

6

我收到了来自Crashlytics的崩溃报告:

Crashed: com.apple.root.default-overcommit-priority
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x8b2b0353

Thread : Crashed: com.apple.root.default-overcommit-priority
0  myApplication                  0x0028f0c4 Parse
1  ???                            0xffffffc9 
2  myApplic                       0x00291073 ukeylist_get_scan
3  libsystem_pthread.dylib        0x3aac9c5d _pthread_body + 140
4  libsystem_pthread.dylib        0x3aac9bcf _pthread_start + 102

我的问题:

  1. com.apple.root.default-overcommit-priority 是什么意思?(也许是内存?)
  2. 为什么第二行是 ???
  3. 如何解决这个问题?

感谢您花时间帮助我解决这个问题。


1
您可以通过启用NSZombieEnabled来解决此问题。具体操作请参考以下链接:https://dev59.com/K3I95IYBdhLWcg3wtwRe - BSMP
1个回答

1

com.apple.root.default-overcommit-priority 是调度队列的名称;我认为这在这个问题中不是很重要。

第二行很有意思,地址非常高。

Parseukeylist_get_scan 方法是您创建的还是通过库引入的?

您拥有的无效内核地址很有趣;它是我预计用于代码的一个有效范围内的地址。通常,在崩溃中会得到一个非常低的值,例如0x20(这表明某处出现了空值)。

我认为您有一些解析某些输入数据的代码,使用了 Parse 方法,但您的代码不能处理意外的数据。因此,我建议您编写更具防御性的 Parse 方法代码(假设它是您的方法之一),并尝试编写一些单元测试代码来传递错误数据。

如果这只是偶尔出现的问题,那么您无能为力。否则,您可以查看整体模式以获取进一步的线索;例如,始终相同的设备、特定的操作系统版本或始终是低端设备等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接