Version: 6000.3
语言: 中文
在 iOS 设备上收集性能数据
iOS 设备上的故障排除

iOS 上的托管堆栈跟踪

当托管代码中发生异常时,异常的堆栈跟踪可以帮助您了解异常的原因。但是,对于 iOS 上的某些情况,托管堆栈跟踪可能不会按预期显示。堆栈跟踪也因 Xcode 构建配置而异。

调试版本

当您在 iOS 中使用调试构建配置时,IL2CPP Unity 开发的脚本后端,在为某些平台构建项目时,可以将其用作 Mono 的替代方案。更多信息
请参阅术语表
将报告可靠的托管堆栈跟踪,并在调用堆栈中包含每个托管方法。堆栈跟踪不包括原始 C# 源代码中的行号。

发布版本

使用发布生成配置时,IL2CPP 可能会生成缺少一个或多个托管方法的调用堆栈。这是因为 C++ 编译器内联了缺少的方法。方法内联通常有利于运行时的性能,但它会使调用堆栈更难理解。IL2CPP 始终在调用堆栈上至少提供一个托管方法。这是发生异常的方法。如果其他方法未内联,它还包括其他方法。

如果可以在本地重现异常,请使用 Xcode 查找内联方法。使用发布配置在 Xcode 中运行应用程序,并设置异常断点。Xcode 中的本机调用堆栈视图将指示哪些方法实际存在,哪些方法已被内联。

源代码行号

默认情况下,IL2CPP 调用堆栈在调试或发布配置中不包含源代码行号信息。您可以使用以下步骤启用源代码行号:

  1. 找到 编辑>项目设置Edit Project Settings) > 播放器(Player) > iOS设置> 其他设置
  2. 在“配置”部分中,将“IL2CPP 堆栈跟踪信息”设置为“方法名”、“文件名”和“行号”。

注意:使用此选项可以增加构建程序的构建时间和最终大小。

在 iOS 设备上收集性能数据
iOS 设备上的故障排除