关于调试符号
Understand how debugging symbols map program addresses to function names for readable crash stack traces.
阅读时间2 分钟最后更新于 1 个月前
符号将程序地址映射到函数名。它们让崩溃和异常报告能够以人类刻度的名称提供原生崩溃 stack trace,而不是使用数字地址。它们可以包含在可执行文件中,但通常存储在单独的文件中,以减小可执行文件的大小。 崩溃和异常报告功能使用以下两套符号:
- 系统 (OS) 符号:系统符号由操作系统供应商生成,并根据操作系统的不同而采用不同的格式。Apple 平台使用 dSYM 文件夹,Android 符号存储在 .so 文件中,而 Windows 符号存储在 .pdb 文件中。Unity 支持由 Apple、Google 和 Microsoft 生成的符号。
- 应用程序 (Unity) 符号:构建 Unity 项目时会自动生成应用程序符号。

了解系统符号缺失问题
符号文件具有通用唯一标识符 (UUID) 或全局唯一标识符 (GUID),并且该标识符必须与可执行文件的 ID 完全匹配。如果崩溃和异常报告服务无法加载 ID 与库或模块匹配的符号文件,则会生成以下错误:- <system symbols missing>
- <symbols missing for uuid: xxx...>