Eu gostaria de registrar o rastreamento de chamadas durante determinados pontos, como afirmações com falha ou exceções não capturadas.
objective-c
cocoa
robottobor
fonte
fonte
backtrace
ebacktrace_symbols
; consulte a página de manual backtrace (3).backtrace/backtrace_symbols
diretamenteA resposta de n13 não funcionou muito bem - eu a modifiquei um pouco para criar essa
fonte
NSLog(@"[Error] - %@ %@", exception.name, exception.reason);
se quiser que a exceção real tambémO cacau já registra o rastreamento de pilha em exceções não capturadas no console, embora sejam apenas endereços de memória bruta. Se você quiser informações simbólicas no console, há algum código de amostra da Apple.
Se você deseja gerar um rastreamento de pilha em um ponto arbitrário no seu código (e você está no Leopard), consulte a página de manual do backtrace. Antes do Leopard, você realmente precisava vasculhar a própria pilha de chamadas.
fonte
Isso praticamente diz o que você deve fazer.
Essencialmente, você precisa configurar o tratamento de exceções dos aplicativos para registrar, algo como:
fonte
Para exceções, você pode usar o membro NSStackTraceKey do dicionário userInfo da exceção para fazer isso. Consulte Controle da resposta de um programa a exceções no site da Apple.
fonte
Em impressão rápida, desta maneira:
fonte