2009-07-22 41 views
79

Esta fue la respuesta de la Larson Brad en este SO preguntaCómo agregar un punto de interrupción a objc_exception_throw?

Si agrega dos puntos de ruptura, que debe ser capaz de depurar estas excepciones. Para hacer esto, vaya a Ejecutar | Mostrar | Puntos de interrupción y crear dos puntos de corte globales (los hago globalmente porque son muy útiles en todas mis aplicaciones). El primero debe llamarse "objc_exception_throw" y su ubicación debe ser "libobjc.A.dylib". El segundo debe ser "- [Subida NSException]" y su ubicación debe ser "CoreFoundation".

Ahora, si comienza a depurar su aplicación con los puntos de interrupción habilitados, debería interrumpirse en el lanzamiento de estas excepciones. Entonces debería poder ver la cadena de eventos que condujo a la excepción dentro del depurador.

ahora en esta respuesta quiero preguntar cómo agrego la ubicación mencionada ???

+0

¿Alguien tiene capturas de pantalla/rutas de menú para XCode 4? – buildsucceeded

+2

Echa un vistazo a este hilo en los foros de Apple Dev para obtener instrucciones sobre cómo hacer esto en XCode 4: https://devforums.apple.com/thread/68421 –

Respuesta

81

Creo que la respuesta de Brad es bastante clara; con suerte, esto puede ayudar si no lo encuentras claro.

En Xcode, en el menú superior, haga clic en Ejecutar> Mostrar> Puntos de interrupción. Una nueva ventana aparece.

Seleccione "puntos de inflexión globales" en el menú de la izquierda. Debería haber un recuadro a la derecha debajo de la columna "Punto de inflexión" con el texto "Doble clic para el símbolo". Haga clic en este cuadro y escriba "objc_exception_throw".

Luego, haga clic en el espacio junto a "objc_exception_throw" debajo de la columna "ubicación". Aparecerá un cuadro para que escriba la ubicación (en este caso, "libobjc.A.dylib"). He hecho una captura de pantalla que se espera ayude:

alt text

+0

gracias por tu respuesta muy clara –

+0

Esto es realmente útil, gracias // :) – Spanky

+0

Funciona muy bien. Gracias por los detalles. –

4

También me gustaría recomendar la adición de la +[NSException raise:format:arguments:] punto de interrupción y su ubicación debe ser CoreFoundation.

+0

Gracias @ el-developer –

45

En Xcode 4 este gran punto de interrupción se puede añadir a través del botón "+" en la sección de puntos de interrupción (⌘ + 6)

enter image description here

+1

Este mismo enfoque se puede utilizar en XCode 5 –

+0

También puede instalar [script que imprime la descripción de la excepción en la consola] (http://stackoverflow.com/a/29671227/991816), debe tener! – DanSkeel

6

en Xcode 6 - de arriba menú

depuración > Puntos de interrupción> Crear punto de corte de excepción

+0

Las otras respuestas han cambiado, esta respuesta es la correcta a partir de abril de 2017/Xcode8 – Josh

Cuestiones relacionadas