Los símbolos asignan las direcciones del programa a los nombres de las funciones. Permiten que el servicio de Informes de Desempeño proporcione un rastreo de pila de bloqueo nativo con nombres de funciones legibles por el ser humano, en lugar de solo direcciones de memoria. Pueden estar contenidos dentro del ejecutable, pero normalmente se almacenan en un archivo separado para reducir el tamaño del archivo ejecutable y dificultar la manipulación del ejecutable.
Los archivos de símbolos vienen en diferentes formatos dependiendo del sistema operativo. Las plataformas de Apple usan carpetas dSYM, los símbolos de Android se almacenan en archivos .so y los símbolos de Windows se almacenan en archivos .pdb. El servicio de Informes de Desempeño puede identificar y procesar todos estos formatos.
El servicio de informes de rendimiento funciona con dos conjuntos de símbolos separados:
Los archivos de símbolos tienen un identificador único universal (UUID) o un identificador global único (GUID) que debe coincidir exactamente con el ID del ejecutable. El servicio de informes de rendimiento genera los siguientes errores si no puede cargar un archivo de símbolos con un ID que coincida con una biblioteca o módulo:
<system symbols missing>
<symbols missing for uuid: xxx…>
El archivo de símbolo que falta en el servicio de Informes de Desempeño genera informes que aparecen en el Tablero de servicios de Unity en la pestaña Rendimiento en la sección Informes.
Los informes en los que faltan los símbolos del sistema contienen una línea en el seguimiento de la pila que se encuentra en la sección Informes del Tablero:
<symbols missing for uuid: xxx…>
Normalmente, el problema es que Unity no tiene los símbolos para esa versión del sistema operativo. Para iOS y otras plataformas de Apple, puede ser difícil obtener los símbolos para versiones anteriores del sistema operativo. Unity tiene cobertura de símbolos del sistema en aproximadamente el 80% de las versiones de iOS, comenzando desde la familia de iOS 7. Unity se esfuerza por capturar símbolos para las nuevas versiones de iOS tan pronto como sea posible después de su lanzamiento.
Si se encuentra con esta situación, puede verificar si tiene informes de fallos similares para otra versión del sistema operativo. Si lo hace, es posible que pueda resolver el problema depurándolo en esa versión del sistema operativo.
Los informes donde faltan los símbolos de la aplicación contienen una línea en el seguimiento de la pila:
<symbols missing for uuid: xxx…>
Cuando crea un proyecto en el que está habilitado el Informe de rendimiento, Unity genera un archivo de símbolo y lo carga en los servidores de Informes de rendimiento. Si el proceso falla, el mensaje de símbolos que faltan aparece en el Tablero de servicios.
Para solucionar fallas en la carga del símbolo, verifique el archivo symbol_upload.log
ubicado en la misma carpeta que el registro principal de Unity. Debe indicar qué símbolos se encontraron y procesaron, junto con los errores que ocurrieron durante el procesamiento y la carga de los símbolos.