Cómo Los instrumentos obtienen información de depuración:
Los instrumentos obtienen información de depuración de un archivo .dSYM que normalmente genera XCode al establecer el Formato de información de depuración en DWARF con el archivo dSYM combinado con una marca de verificación en el cuadro de opción Generar símbolos de depuración. Establecer estas opciones agregará un paso adicional al proceso de compilación XCode y generará un archivo dSYM después de compilar la aplicación. Cada dSYM está construido con un UUID que corresponde a un UUID en una sección Mach-O en el binario del que se deriva. Un importador de Spotlight indexa los UUID de cada archivo dSym que se encuentra en una ubicación accesible de Spotlight en su Mac. Por lo tanto, SPOTLIGHT hace toda la magia negra y es responsable de establecer el enlace entre la .app que está ejecutando y su correspondiente archivo .dSYM.
cómo generar información de depuración y archivo dSYM sin XCode:
Asegúrese de que está compilig con banderas -gdwarf-2 y -g. (Otras combinaciones de indicadores podrían funcionar)
-g información de depuración Produce en formato nativo ( puñaladas, COFF, XCOFF o ENANO 2) del sistema operativo. GDB puede trabajar con esta información de depuración . En la mayoría de los sistemas que usan el formato de stabs, -g permite el uso de información de depuración adicional que solo GDB puede usar; esta información adicional hace que la depuración de funcione mejor en GDB, pero probablemente hará que otros depuradores fallan o se niegan a leer el programa. Si desea controlar con certeza si genera la información adicional, use -stabs +, -gstabs, -gxcoff +, -gxcoff o -gvms (consulte a continuación). GCC le permite usar -g con -O. Los accesos directos tomados por código optimizado pueden ocasionalmente producir sorprendentes resultados : algunas variables que haya declarado pueden no existir en absoluto; flujo de control puede moverse brevemente donde no lo hizo esperarlo; algunas sentencias pueden no ser ejecutadas porque calculan resultados constantes o sus valores eran ya disponibles; algunas sentencias pueden ejecutar en diferentes lugares porque se movieron fuera de bucles.
Sin embargo, es posible depurar la salida optimizada. Esto hace que sea razonable usar el optimizador para programas que puedan tener errores.
-gdwarf-2 Produce la información de depuración en formato DWARF versión 2 (si es compatible). Este es el formato utilizado por DBX en IRIX 6. Con esta opción, GCC usa las características de DWARF versión 3 cuando son útiles; versión 3 es compatible con versión 2, pero aún puede causar problemas para depuradores anteriores.
generar un archivo usando dSYM dsymutil. Si la herramienta no se reconoce en la línea de comando, usa Spotlight para encontrarla. IMPORTANTE: Coloque el archivo .app en su mac HD antes de generar el dSYM si está trabajando en una unidad en red.
dsymutil MyApp.app/MyApp -O MyApp.app.dSYM
Coloque el archivo .dSYM en la unidad local del mac y ejecutar instrumentos como lo haría normalmente.
indexación de Spotlight Resettig:
Si no se muestran los símbolos, puede ser debido a spotligh hay micrófonos. Puede intentar restablecer la indexación de Spotlight agregando su carpeta que contiene el archivo dSYM (o incluso su unidad) a "Prevenir que Spotlight busque estas ubicaciones" en las preferencias de Spotlight y luego eliminarlo de inmediato.
Gracias. Anteriormente excluí mi carpeta Xcode DerivedData del índice de Spotlight para ayudar a Spotlight a encontrar el .dsym correcto para simbolizar los registros de bloqueo. Eliminar eso hizo el truco. – joerick
Aunque puede requerir que Finder sea capaz de mostrar las carpetas ocultas, y necesite usar arrastrar y soltar para poder agregar temporalmente la carpeta a la lista de carpetas sin indexar, me funcionó bien después de eliminarla, para indexarla de nuevo – petershine
Esto nos sucedió porque cambiamos el Formato de información de depuración de "DWARF con archivo dSYM" a "DWARF" por motivos de rendimiento. Tenemos el formato establecido en "DWARF con archivo dSYM" en otro esquema. Entonces solo tenemos que cambiar los esquemas cada vez que queremos crear un perfil. –