xcode 12.4 升级导致的objc 内存和线程崩溃

问题描述

在过去的几周里,我一直在尝试解决看似随机出现的崩溃问题。我相信它与使用 12.3 的 xcode 12.4 创建的构建相吻合。我的同步操作开始崩溃,内存中发生 EXC_BAD_ACCESS 崩溃。

我正在使用 NSOperationQueue。我试过使用僵尸对象,但因为错误block 中,所以我看不到它们。

我的主题是这样的:

App thread state while crashing

队列视图显示 developerSubmittedBlockToNSManagedobjectContextPerform

有人对可能导致问题的原因有什么建议吗?或者其他方法来追踪它?谢谢

解决方法

对于可能遇到类似问题的任何人,我们最终将问题归结为我们数据库链接的核心数据问题。

我们的数据库实体之间缺少一些反向关系。主要理论是,由于关系不存在,系统将解除分配上下文。这将引发无用的线程问题。

这些关系多年来一直处于这种状态,我们认为在最近的 excode 更新中,内存管理系统可能已更新,从而暴露了问题。