Há algum registro de travamento gerado pelo iPhone Simulator?
o Simulador trava muito, mas não deixa rastros no Console ... o registro de travamento será útil.
iphone
ios-simulator
crash-reports
Raptor
fonte
fonte
Respostas:
O console mostrará a
NSLog()
saída de um aplicativo em execução no simulador. Os logs de travamento são salvos em arquivo.Eu encontrei alguns no meu diretório inicial em
Eles têm uma extensão de arquivo de
.crash
Algo que ainda não descobri é como fazer com que eles sejam gerados, mesmo que o depurador pegue o
EXC_BAD_ACCESS
sinal.Atualizar
Atualmente, (OSX 10.11.6), os registros .crash
~/Library/Logs/DiagnosticReports
são quando o próprio emulador trava . Os registros de falha de um aplicativo (mas o dispositivo do emulador ainda está funcionando bem) estão em:Por falha, há uma subpasta com um id único. Classifique por data, para que sua falha recente seja a primeira subpasta. Dentro disso, comece olhando para
stderr.log
esystem.log
.Também diretamente abaixo de
CoreSimulator
, consulteCoreSimulator.log
eSimulator.log
.fonte
~/Library/Logs/DiagnosticReports/
Tenho certeza de que você pode ver isso no aplicativo OS X Console localizado em Utilitários. Se eu estiver errado, porém, certifique-se de votar em mim para que eu exclua isso.
ATUALIZAR:
Especificamente (conforme OSX 10.11.6),
Quando um aplicativo falha no emulador, uma subpasta (com um ID exclusivo) é adicionada a:
Dentro disso, comece examinando
stderr.log
esystem.log
.Quando o próprio emulador falha, uma subpasta é adicionada a:
Não confunda este caminho com
(falta
~
no início), que tem relatórios diferentes sobre o seu mac.fonte
Aqui está algo que funcionou para mim em um caso especial ... Meu aplicativo estava travando com o SIGKILL ao encerrar. Eu veria a exceção em main.m por alguns segundos e, em seguida, o aplicativo terminaria de encerrar - portanto, sem chance de obter o rastreamento de volta.
Fiz muitas pesquisas sobre “onde o simulador armazena seus logs de travamento” e nunca consegui encontrar uma resposta. No entanto, o seguinte truque foi muito útil e fui capaz de obter o registro de falhas na hora:
Basicamente, abra /Applications/Utilities/CrashReporterPrefs.app e altere a configuração para “Desenvolvedor”. Isso fará com que o CrashReporter exiba um pop-up com o log de travamento após o travamento do aplicativo.
Eu encontrei isso na seção “Visualizando o console do simulador iOS e logs de falha” neste documento da Apple: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application. html
fonte
Isso é muito mais confiável. Em apenas algumas etapas, consegui encontrar o número da linha de origem e o nome do método:
fonte
Os logs de travamento aparecerão em ~ / Library / Logs / CrashReporter.
Quando o Xcode obtém logs de travamento de um dispositivo conectado, ele os armazena em subpastas de ~ / Library / Logs / CrashReporter / MobileDevice
fonte
Para mim, foi uma expressão que adicionei à janela de observação do depurador. Quando um ponto de interrupção estava sendo atingido, a expressão incorreta estava causando o segfault do XCode.
fonte