我收到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
我的问题:
com.apple.root.default-overcommit-priority
是什么意思? (也许记忆?)感谢您抽出宝贵时间帮我解决此问题。
答案 0 :(得分:1)
com.apple.root.default-overcommit-priority
是调度队列的名称;我认为这不是解决这个问题的重要因素。
第二行很有意思,地址非常高。
您创建或通过库引入的Parse
和ukeylist_get_scan
方法是什么?
您拥有的无效内核地址很有趣;它是我希望对代码有效的范围内的地址。通常你会在崩溃中得到一个非常低的值,例如0x20(这表明在某处有一个零)。
我认为你有使用Parse方法解析一些输入数据的代码,但是你的代码不能很好地处理意外数据。因此,我建议您在Parse方法上编写更多防御性代码(假设它是您的方法之一),并尝试编写一些传递错误数据的单元测试代码。
如果这只是一个没有再看到的奇怪问题,那么你无能为力。否则你可以看一下整体模式,看看更多的线索;例如始终是相同的设备,或始终是某个操作系统版本,或始终是低端设备等。