Me gustaría registrar el seguimiento de llamadas durante ciertos puntos, como aserciones fallidas o excepciones no detectadas.
objective-c
cocoa
robottobor
fuente
fuente
backtrace
ybacktrace_symbols
; consulte la página de manual de traza inversa (3).backtrace/backtrace_symbols
directoLa respuesta de n13 no funcionó del todo: la modifiqué un poco para llegar a esto
fuente
NSLog(@"[Error] - %@ %@", exception.name, exception.reason);
si desea la excepción realCocoa ya registra el seguimiento de la pila en excepciones no detectadas en la consola, aunque solo son direcciones de memoria sin procesar. Si desea información simbólica en la consola, hay algunos códigos de muestra de Apple.
Si desea generar un seguimiento de la pila en un punto arbitrario de su código (y está en Leopard), consulte la página del manual de seguimiento. Antes de Leopard, en realidad tenía que cavar a través de la pila de llamadas.
fuente
Esto prácticamente te dice qué hacer.
Esencialmente, necesita configurar el manejo de excepciones de aplicaciones para iniciar sesión, algo como:
fuente
Para excepciones, puede usar el miembro NSStackTraceKey del diccionario userInfo de la excepción para hacer esto. Consulte Control de la respuesta de un programa a las excepciones en el sitio web de Apple.
fuente
En impresión rápida de esta manera:
fuente