Crashlytics:编译器生成是什么意思?

C. *_*net 10 crash ios firebase crashlytics swift

我正在使用 Firebase Crashlytics 从我的 iOS 应用程序获取崩溃报告,但我收到了一些我不理解的崩溃,并显示了 <compiler-generated> 错误消息。我不明白是什么导致了这种崩溃。

在此处输入图片说明

当我查看堆栈跟踪时,我也会得到一行或几行带有编译器生成的错误消息。

在此处输入图片说明

我一直在寻找,但找不到发生这种崩溃的原因。在这个特定的例子中,这里是发生崩溃的函数(它没有说明哪一行)。从我所见,我只能猜测这与我在另一个数组上使用数组中的索引有关,因此它可能超出范围......但我真的不知道。

在此处输入图片说明

这使得修复崩溃变得非常困难,因为我只能假设我的代码中可能有什么问题。另外,如果问题实际上是超出索引范围,它不应该报告发生崩溃的行吗?我真的想了解编译器生成的东西,而不是解决这个实际的崩溃:)

Asp*_*eri 7

编译器生成意味着代码被 swift 编译器注入到最终的二进制文件中。这可能是展开的内联类型库函数、优化的东西等。截图上的崩溃日志只显示失败执行堆栈的顶部调用,在大多数情况下它不是你的代码行(虽然有原因) 但一些标准函数调用(来自库或自动生成)。因此,您不仅要调查第一行,还要调查崩溃堆栈的完整回溯。