About Debugging Symbols
Understand how debugging symbols map program addresses to function names for readable crash stack traces.
Read time 2 minutesLast updated 9 hours ago
Symbols map program addresses to function names. They allow crash and exception reports to provide a native crash stack trace with human-readable function names, instead of numerical addresses. They can be contained within the executable itself, but are usually stored in a separate file to reduce executable size.
Crash and Exception Reporting works with two sets of symbols:
- System (OS) symbols: System symbols are generated by the operating system supplier and come in different formats depending on OS. Apple platforms use dSYM folders, Android symbols are stored in .so files, and Windows symbols are stored in .pdb files. Unity supports symbols generated by Apple, Google, and Microsoft.
- Application (Unity) symbols: Application symbols are auto-generated when you build your Unity project.
Understanding missing system symbols
Symbol files have a universally unique identifier (UUID) or globally unique identifier (GUID) that must exactly match the ID of the executable. Crash and Exception Reporting generates the following errors if the service cannot load a symbol file with an ID that matches a library or module:- <system symbols missing>
- <symbols missing for uuid: xxx...>