2010-09-24 17 views
17

Ok, creo que lo he visto todo ahora.depuración de XCode frente a la versión de lanzamiento al depurar

Durante aproximadamente 24 horas he estado tratando de depurar mi aplicación, tratando de encontrar de dónde vienen todos los bloqueos extraños de repente. He estado depurando a través del modo simulador/depuración. Como de costumbre, cuando llego a un punto de interrupción, puedo ver el valor de las variables (la mayoría de las veces). Entonces, de repente, no pude ver las variables sin importar lo que hice (por cierto, estoy hablando de suspender el mouse como por alguna estúpida razón por la que mi xcode deshabilitó todas las herramientas de depuración del menú de depuración).

Para resumir, por pura pérdida de cosas que hacer, decido depurar con el modo de lanzamiento. Ahora puedo acceder a puntos de interrupción y ver el contenido de mis variables. Y lo que es aún más confuso es que ahora xcode me da una visión mucho más completa de las variables que estoy 'viendo' (al pasar el cursor).

Sé que a Apple le gusta hacer cosas diferentes. ¡Pero qué diablos !? ¿Alguien puede darme una bofetada y luego decirme qué es lo que no entiendo aquí?

Respuesta

24

En primer lugar, las configuraciones "Depurar" y "Liberar" son solo nombres, también puede nombrarlos "Jon" y "Carla" si lo desea. Solo son nombres para un conjunto de configuraciones que puede modificar y puede modificarlas para que, por ejemplo, la configuración "Depurar" ya no sea adecuada para la depuración. Entonces, si usted (por accidente) desactivó la generación de símbolos de depuración en su configuración de "Depuración", obtendría exactamente lo que describió.

Ir a "Proyecto" -> "Editar destino activo". Seleccione la pestaña "Crear" y seleccione la configuración "Depurar" en el cuadro desplegable en la esquina superior izquierda. Seleccione "Mostrar todas las configuraciones" en el cuadro desplegable a continuación y escriba "depurar" en la barra de búsqueda que se encuentra junto a estos dos cuadros desplegables.

Debe haber una configuración "Generar símbolos de depuración", asegúrese de que esté activada la casilla de verificación. El "Nivel de símbolos de depuración" debe establecerse en "Todos los símbolos". Además, el "Formato de información de depuración" debe establecerse en "DWARF con el archivo dSYM".

Después de cambiar la configuración, limpie su proyecto ("Crear" -> "Limpiar") y vuelva a compilar.

Espero que ayude.

+0

¿quiere decir que el dSYM enano es una cuestión de depuración? – jokoon

+5

[DWARF] (http://en.wikipedia.org/wiki/DWARF) es un formato de archivo de depuración. Los directorios/paquetes dSYM (símbolos de depuración) son la forma en que Apple organiza/almacena los archivos DWARF para mantener los símbolos de depuración separados de los binarios (en lugar de incrustar los símbolos de depuración en los binarios). La separación le permite enviar su aplicación sin símbolos de depuración, pero si obtiene un registro de bloqueo o necesita depurar la aplicación, todavía tiene los símbolos de depuración. – DarkDust

+0

El formato de información de depuración en Xcode para mi proyecto está configurado en DWARF con dsym. ¿Significa que estoy enviando símbolos de depuración a los clientes, que pueden usarlo para realizar una ingeniería inversa de mi aplicación? –

Cuestiones relacionadas