xip update mac instalar for app xcode debug-symbols xcode-instruments

update - Xcode 4 Instruments no muestra líneas de origen



xcode for free (8)

Acaba de empezar a trabajar; No hay rima ni razón.

He pasado la última media hora intentando que vuelva a fallar, con la esperanza de proporcionar una respuesta más útil aquí, pero no puedo, incluso después de recrear el programa OpenGL esqueleto desde cero, siguiendo todos mis pasos.

Abrí el script symbolicatecrash en emacs (se ha implicado en otra parte, se resolvió este tipo de problema), y comenzó a funcionar después de que hice esto. Pero en ningún momento lo cambié o lo guardé.

Es un misterio.

Acabo de comenzar a jugar con Xcode 4 y descubrí que, sin importar cómo configure los símbolos de depuración en el proyecto, Instruments se niega a mostrar líneas de origen para los elementos de seguimiento de pila que corresponden a mi código. En solo muestra los desplazamientos hexadecimales e identifica mi ejecutable como el módulo propietario. Activar "Ubicación de origen" también se pone en blanco. Esto ocurre incluso para el proyecto OpenGL ES esquelético generado por Xcode (Archivo → Nuevo → Nuevo proyecto ... → iOS → Aplicación → Aplicación OpenGL ES).

Este problema solo se produce en instrumentos (hasta ahora he intentado el seguimiento de CPU y OpenGL). Gdb recoge los símbolos de depuración muy bien.

¿Tengo que hacer algo especial para ver el código fuente de los seguimientos de pila en los instrumentos o es un error en Xcode 4?

Hasta ahora, he:

  • Se cambió el Debug Information Format de DWARF with dSYM File a DWARF .
  • Se cambiaron los Strip Debug Symbols During Copy de Yes a No
  • Se modificó el esquema de compilación para usar la compilación de depuración en lugar de la compilación de lanzamiento con instrumentos.

Aquí está mi entorno ...

  • XCode 8.2
  • Mac OS v10.12 Sierra

Tuve el mismo problema en el simulador y me estaba volviendo loco porque TODAS las correcciones estándar no funcionaban.

Lo que me hizo fue conectar mi iPad al MacBook y ejecutar una sesión de instrumentos contra dicha aplicación en mi iPad conectado. Los instrumentos simbolizaron correctamente mi aplicación cuando se ejecuta en el iPad, y luego continuaron funcionando cuando desconecté el iPad y ejecuté los instrumentos más adelante en el simulador.

Sospecho que tuvo algo que ver con la actualización de mi proyecto para usar lo siguiente ...

  • libsqlite3.tbd en lugar de libsqlite3.dylib
  • libstdc ++. 6.bd en lugar de libstdc ++. dylib

No sé por qué ese sería el caso, pero ese fue el ÚNICO cambio de proyecto que hice antes de que mis símbolos se perdieran en Instruments.


Descubrí cuál era el problema, ya que tenía exactamente el mismo problema.

La respuesta proviene de: Falta el nombre de los símbolos al crear el perfil de una aplicación de iPhone con instrumentos

  1. Asegúrese de haber compilado su código con los indicadores de depuración habilitados (por ejemplo, -g3 ).
  2. Ejecute dsymutil en su biblioteca binaria / dinámica para la que desea poder acceder a la información de depuración.

Esto genera una carpeta de paquete dSYM, y cuando se indexa por Spotlight, la información de depuración necesaria se pone a disposición de los instrumentos.

Supongo que en tu caso, tomó algún tiempo antes de que Spotlight hiciera indexar las cosas, y cuando lo hizo, entonces las cosas funcionaron mágicamente .


En las versiones más recientes de Instruments (tengo 5.1.1 (55045) ), puede agregar rutas adicionales para buscar los dSYM y el código fuente

Abra las Preferencias de Instrumentos, luego haga clic en la pestaña "dSYMs And Paths".

Luego agrega tu ruta a la lista.


Intente seleccionar una identidad de firma de código diferente, es decir, un perfil de aprovisionamiento, para la configuración de la versión .


Las otras respuestas son buenos arreglos a largo plazo. Si prefiere no esperar a que Spotlight reconstruya su índice y solo necesite obtener símbolos para una sesión de Instruments, puede pedir a Instruments que simbolice la sesión actual.

  1. Seleccione Archivo → Simbolizar documento ...
  2. Localiza tu binario en la lista que aparece. Debe ser el mismo nombre que ves en el Springboard. Seleccione su binario y haga clic en "Localizar".
  3. Vuelve a Xcode. Presione la tecla Control y haga clic en su producto de construcción .app y elija "Mostrar en Finder".
  4. Esto revelará el directorio que contiene su binario, así como su archivo dSYM . Vuelva a Instrumentos, navegue a este directorio y seleccione su archivo dSYM . La forma más fácil es simplemente arrastrar el archivo dSYM directamente desde el Finder al cuadro de diálogo "Seleccionar dSYM" en Instrumentos.
  5. Por último, haga clic en "Symbolicate" en los instrumentos. Ahora debería ver los símbolos en las trazas en lugar de los desplazamientos hexadecimales.

Tuve este problema hoy y lo resolví de esta manera:

  1. Editar esquema
  2. Haga clic en "Perfil" a la izquierda (este es el paso importante)
  3. Cambiar la configuración de compilación para depurar

Deberias hacer eso. Tenga en cuenta que, por el motivo que sea, el objetivo de compilación no está configurado con la misma configuración de compilación que el objetivo de perfil y esto me ha disparado más de una o dos veces.


Una razón por la que los instrumentos no tienen símbolos podría ser que Spotlight no puede encontrar el archivo dSYM. Entonces, su cambio de DWARF with dSYM a DWARF no es una buena idea. Deberías volver a cambiarlo ya que sin un archivo dSYM, no obtendrás símbolos de todos modos (al menos este parece ser el caso de Snow Leopard, he visto informes de que algunas personas también obtuvieron símbolos sin archivos dSYM, sin embargo, todas esas personas estaban usando león). Después de hacer el cambio, asegúrate de crear una compilación limpia (a veces Xcode no genera el archivo dSYM en mi sistema para las compilaciones que no son limpias).

Si aún no obtiene ningún símbolo después de todo eso, hay algún problema con su base de datos de Spotlight. Intente agregar la carpeta que contiene los archivos dSYM después de una compilación a la lista de carpetas. Spotlight no indexará y luego volverá a eliminarla de esa lista. Esto hace que Spotlight reindexe los archivos.

Si esto tampoco ayuda, tal vez su índice de Spotlight esté completamente dañado. En ese caso, intente lo siguiente en una Terminal:

sudo mdutil -i off / sudo mdutil -E / sudo mdutil -i on /

Esto hace que Spotlight primero deje de indexar su disco duro principal, luego borra todos los datos de índice recopilados en el pasado y luego comienza a reindexarlo. Las líneas anteriores suponen que sus archivos dSYM se encuentran en el disco duro principal (y no en ningún otro disco duro o volumen de red; de lo contrario, debe reemplazar ''/'' con el punto de montaje adecuado para ese volumen). Dale a Spotlight algo de tiempo para reindexar antes de volver a intentarlo.