【问题标题】:iOS Crash log: what is 'purgeable_ptr_in_use_enumerator'?iOS 崩溃日志:什么是“purgeable_ptr_in_use_enumerator”?
【发布时间】:2026-01-25 10:50:01
【问题描述】:

有人熟悉来自 libsystem_c.dylib 的崩溃消息 purgeable_ptr_in_use_enumerator 吗?

我的预感是它与一些可变对象同时发生变异有关,它在代码中的另一个点被访问,但只是想看看是否有人对这个错误消息有很好的理解。

不管它的价值,这里是前面的错误日志

0    libsystem_kernel.dylib __pthread_kill + 8

1    libsystem_c.dylib  abort + 94

2    libsystem_c.dylib  purgeable_ptr_in_use_enumerator

3    libsystem_c.dylib  free_tiny_botch + 84

4    libsystem_c.dylib  free + 170

5    CoreFoundation __rehashs + 162

6    CoreFoundation -[__NSSetM addObject:] + 214

7    CoreFoundation -[NSMutableSet addObjectsFromArray:] + 382

【问题讨论】:

  • 这不是一个崩溃信息,而是CoreFoundation的一个内部函数。提示:您很可能缺少对内存管理的理解。
  • 哦,很有趣。我想知道是什么导致了这次崩溃呢?也许该数组已在早些时候发布...

标签: objective-c ios xcode memory-management


【解决方案1】:

这不是错误消息。它是在 libsystem_c 中的magazine_malloc.c 中定义的静态函数。如果您对详细信息感兴趣,请参阅this

【讨论】:

    【解决方案2】:

    检查设备上的可用磁盘空间。我们的一个用户总是在随机的地方崩溃,他的所有日志都有这个共同点。结果他的设备上只有 2-3 MB 的可用空间。

    【讨论】: