Как Вы распечатываете отслеживание стека к подключаться с консоли/входить в систему Какао?

290
задан nhgrif 12 July 2014 в 10:57
поделиться

4 ответа

 NSLog(@"%@",[NSThread callStackSymbols]);

Этот код работает в любом потоке.

537
ответ дан 23 November 2019 в 01:43
поделиться

Какао уже регистрирует отслеживание стека в неперехваченные исключения к консоли, хотя они - просто необработанные адреса памяти. Если Вы хотите символьную информацию в консоли существуют [приблизительно 110] пример кода от Apple.

, Если Вы хотите генерировать отслеживание стека в произвольной точке в Вашем коде (и Вы находитесь на Leopard), см. страницу справочника следа. Перед Leopard на самом деле необходимо было вырыть через сам стек вызовов.

9
ответ дан Cœur 23 November 2019 в 01:43
поделиться

Это в значительной степени говорит Вам, что сделать.

По существу необходимо настроить обработку исключений приложений для входа, что-то как:

#import <ExceptionHandling/NSExceptionHandler.h>

[[NSExceptionHandler defaultExceptionHandler] 
                  setExceptionHandlingMask: NSLogUncaughtExceptionMask | 
                                            NSLogUncaughtSystemExceptionMask | 
                                            NSLogUncaughtRuntimeErrorMask]
6
ответ дан Cœur 23 November 2019 в 01:43
поделиться

Для исключений можно использовать члена NSStackTraceKey userInfo словаря исключения, чтобы сделать это. См. Управлять Ответом Программы на Исключения на веб-сайте Apple.

2
ответ дан Ben Gottlieb 23 November 2019 в 01:43
поделиться