"_nano_vet_and_size_of_live"仅在iOS 10中发现崩溃

Di *_* Wu 6 objective-c ios ios10

我正在使用KSCrash为我的应用收集崩溃信息.自iOS 10发布以来,我在iOS 10设备中看到了巨大的崩溃浪潮.这些崩溃有很多相似之处.

  1. 所有这些都以信号中止结束.
  2. 所有这些都来自iOS 10设备.
  3. 所有这些都在崩溃线程的回溯中有" _nano_vet_and_size_of_live(在libsystem_malloc.dylib中) ".
  4. 它们中的大多数在崩溃线程的一个寄存器中都有一个"Freeing Unallocated Pointer"字符串.(碰撞发生时,KSCrash会尝试读取并保存寄存器信息)

这似乎是一场可能在很多地方发生的崩溃.一些回溯中有很多CoreText符号.其他似乎与CFPropertyList相关,或与ImageIO相关,甚至与sqlite相关.

我怀疑它是iOS 10的bug.但我不确定.

JAL*_*JAL 0

许多源自 libsystem_malloc.dylib 的崩溃都是由于系统内存问题造成的。我已经看到了堆栈跟踪,但没有真正指向原因。从我的一台旧 iOS 10.x 设备中获取 sysdaignose 后,我意识到每次发生这种情况时,设备的可用 RAM 都非常少。我发现重新启动后这种情况发生得更少。虽然这不是一个理想的答案,但当系统由于 RAM 有限而无法分配任何额外内存时,或者运行时出现灾难性问题,需要重新启动或重新启动设备时,通常会发生这种情况(想想当内核无法打开新的 mach 端口时) 。