NSLog(@"%@",[NSThread callStackSymbols]);
Этот код работает в любом потоке.
Какао уже регистрирует отслеживание стека в неперехваченные исключения к консоли, хотя они - просто необработанные адреса памяти. Если Вы хотите символьную информацию в консоли существуют [приблизительно 110] пример кода от Apple.
, Если Вы хотите генерировать отслеживание стека в произвольной точке в Вашем коде (и Вы находитесь на Leopard), см. страницу справочника следа. Перед Leopard на самом деле необходимо было вырыть через сам стек вызовов.
Это в значительной степени говорит Вам, что сделать.
По существу необходимо настроить обработку исключений приложений для входа, что-то как:
#import <ExceptionHandling/NSExceptionHandler.h>
[[NSExceptionHandler defaultExceptionHandler]
setExceptionHandlingMask: NSLogUncaughtExceptionMask |
NSLogUncaughtSystemExceptionMask |
NSLogUncaughtRuntimeErrorMask]
Для исключений можно использовать члена NSStackTraceKey userInfo словаря исключения, чтобы сделать это. См. Управлять Ответом Программы на Исключения на веб-сайте Apple.