"_nano_vet_and_size_of_live" 在 iOS 10 中出现的崩溃问题

6
我使用KSCrash来收集我的应用崩溃信息。自iOS 10发布以来,我发现只有iOS 10设备上出现了大量崩溃。这些崩溃有很多相似之处:
  1. 所有的崩溃都以信号中止结束。
  2. 所有的崩溃都来自iOS 10设备。
  3. 所有的崩溃线程回溯中都有"_nano_vet_and_size_of_live (in libsystem_malloc.dylib)"。
  4. 大部分崩溃线程寄存器中都有"Freeing Unallocated Pointer"字符串。(当发生崩溃时,KSCrash会尝试读取和保存寄存器信息)
看起来这是一个可能发生在很多地方的崩溃。一些回溯包含许多CoreText符号。其他的则与CFPropertyList、ImageIO或甚至sqlite相关。
我怀疑这是一个iOS 10的bug。但我不确定。

1
我在我的应用程序中也看到了iOS 10的崩溃,这些崩溃仅来自于几个不同的位置,如Crashlytics所报告的。其中一个崩溃源自Google Analytics,另外两个则来自我们创建字符串的地方。它们似乎都与字符串创建有关,并且在调用_nano_vet_and_size_of_live后立即失败。 - Jordan Wood
1个回答

0

许多起源于libsystem_malloc.dylib的崩溃都是由于系统内存问题引起的。我看到了这样的堆栈跟踪,但没有真正的指向原因的线索。在从我的旧iOS 10.x设备中获取了一份sysdaignose之后,我意识到每次发生这种情况时,设备的可用RAM非常少。我发现在进行了新的重启后,这种情况会减少。虽然不是理想的答案,但通常情况下,当系统由于有限的RAM或运行时的灾难性问题而无法分配任何额外的内存时(例如,内核无法打开新的mach端口时),就会发生这种情况。


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