2011-11-30 12 views
28

En el pasado, con el viejo y bueno Xcode 3, cada vez que tenía un bloqueo, Xcode se detenía en la línea ofensiva que mostraba el bloqueo. Fue un buen momento, agradable de depurar.Xcode siempre se detiene en main.m después de un bloqueo

Ahora con Xcode 4.2, cada vez que la aplicación se bloquea, se detiene en main.m en esta línea

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 

que no da ninguna pista sobre lo que está causando el accidente. El problema puede estar en cualquier clase, pero siempre se detendrá en main.m cuando falle.

¿hay alguna manera de que vuelva a funcionar correctamente?

gracias

nota: He pedido esto antes en SO, pero la solución dada ese momento estaba demostrado no ser satisfactorias y el problema persiste.

+0

Para referencia futura, no publicar la misma pregunta de nuevo. Edite su pregunta original para proporcionar nueva información y regréselo a la página principal. –

+0

He pedido eliminar el anterior. – SpaceDog

Respuesta

42

Se cambió el comportamiento, siga this tutorial to break on all exceptions

EDIT:(Enlace podría pudrirse, lo que duplicará la información aquí)

Una de las joyas ocultas en Xcode 4.2 es la “excepción Característica de punto de interrupción. Una vez que lo habilite, su vida de depuración será mucho más fácil porque cada vez que se lanza una excepción en su aplicación, Xcode mostrará la línea de código que provocó la excepción. Esto es particularmente útil si la ventana de la pila de llamadas está vacía (lo que he visto suceder a veces mientras trabajo en las aplicaciones de iOS). En lugar de confiar en un breve mensaje de error en el panel de Salida, que no contiene mucho más que el tipo de excepción y su mensaje de error, ¡puede ver exactamente dónde está el problema!

Se puede añadir un punto de interrupción de excepción al abrir el panel de punto de interrupción Navigator, y haciendo clic en el botón X en la esquina inferior izquierda:

Después de hacer clic en el “... Añadir punto de interrupción de excepción” elemento de menú , verá esta vista de configuración de punto de interrupción abre:

Haga clic en el botón Listo y que será el nuevo punto de interrupción de excepción en su lista de b reakpoints. Si usted quiere tener todas las áreas de trabajo de Xcode incorpora la excepción de punto de interrupción, haga clic derecho (Ctrl + clic) sobre él y abrir el “Mover punto de ruptura” del menú:

Tras hacer clic en “Usuario” en el submenú, verá que el punto de interrupción de excepción se encuentra en el grupo de puntos de interrupción del usuario. Abra otro proyecto y se incluirá automáticamente en la lista de puntos de interrupción.

feliz depuración!

+13

Gracias. Deben estar locos. ¿Cuál es el objetivo de ese cambio? Hacer las vidas de los desarrolladores miserable? ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Gracias!!!!!!!!!!!!!!!! – SpaceDog

+0

¿alguna forma de establecer esto como permanente en xcode? – SpaceDog

+0

el bit al final del tutorial sobre moverlo a "Usuario" lo hace permanente – BarrettJ

5

Simplemente pruebe los siguientes pasos que funcionó para mí.

  1. Abra Preferencias, seleccione la pestaña Comportamientos.
  2. Seleccione "Ejecutar cierra inesperadamente" de columna de la izquierda.
  3. Seleccione "Mostrar depurador con puntos de vista actuales".

Desafortunadamente esto se revierte de nuevo a main.m en el editor de nuevo :) Ahora es necesario seguir los siguientes pasos

  1. Abrir Preferencias, seleccione la ficha Comportamientos.
  2. apenas van a "correr completa"
  3. Hay encontrar la línea "Mostrar" y haga clic en la casilla de verificación
  4. En la misma línea de meta modificar para ir a "actual" en el menú desplegable.

Esto debería funcionar

+1

wow. La próxima versión de Apple debería dificultar la configuración. Gracias – SpaceDog

+0

Hahah! Todavía tienen ** EXACT ** los mismos errores. Simplemente no tiene sentido saltar a un archivo que no dice nada. Si desactivo todas las casillas, supongo (como Apple me enseñó) que sucede LO QUE OJO. En lugar de eso sucede algo. * "Si el usuario no quiere hacer nada para este evento, salta a un archivo aleatorio sin sentido" * Triste. –

Cuestiones relacionadas