¿Cómo agregar un punto de interrupción a objc_exception_throw?


80

esta fue la respuesta de brad larson en esta pregunta SO

Si agrega dos puntos de interrupción, debería poder depurar estas excepciones. Para hacer esto, vaya a Ejecutar | Mostrar | Breakpoints y creo dos breakpoints globales (los hago globalmente porque son muy útiles en todas mis aplicaciones). El primero debería llamarse "objc_exception_throw" y su ubicación debería ser "libobjc.A.dylib". El segundo debería ser "- [NSException raise]" y su ubicación debería ser "CoreFoundation".

Ahora, si comienza a depurar su aplicación con los puntos de interrupción habilitados, debería romperse al lanzar estas excepciones. Luego, debería poder ver la cadena de eventos que llevaron a la excepción dentro del depurador.

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


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

2
Consulte este hilo en los foros de desarrollo de Apple para obtener instrucciones sobre cómo hacer esto en XCode 4: devforums.apple.com/thread/68421
Andy Sinclair

Respuestas:


81

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

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

Seleccione "puntos de interrupción globales" en el menú de la izquierda. Debe haber un cuadro a la derecha debajo de la columna "Punto de interrupción" con el texto "Doble clic para 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"). Hice una captura de pantalla que espero ayude:

texto alternativo


Funciona genial. Gracias por el detalle.
Rob Segal

17
En Xcode 4, hay un navegador de puntos de interrupción donde puede agregarlos.
Don

También puede instalar un script que imprima la descripción de la excepción en la consola , ¡debe tenerlo!
DanSkeel


6

en Xcode 6 - desde el menú superior

Depurar> Puntos de interrupción> Crear punto de interrupción de excepción


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

4

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.