¿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.