Y a-t-il des journaux de plantage générés par iPhone Simulator?
le simulateur plante beaucoup mais ne laisse aucune trace dans la console ... le journal des plantages sera utile.
La console affichera la sortie NSLog()
d'une application exécutée dans le simulateur. Les journaux de plantage sont enregistrés dans un fichier.
J'en ai trouvé dans mon répertoire personnel sous
~/Library/Logs/DiagnosticReports/
Ils ont une extension de fichier de .crash
Quelque chose que je n'ai pas encore compris est de savoir comment les faire générer même si le débogueur saisit le EXC_BAD_ACCESS
signal.
Mise à jour
Actuellement, (OSX 10.11.6), le .crash se connecte ~/Library/Logs/DiagnosticReports
, sont quand l'émulateur lui-même plante . Les journaux d'une application se bloquant (mais le périphérique émulateur fonctionne toujours correctement) sont dans:
~/Bibliothèque/Logs/CoreSimulator
Par crash, il y a un sous-dossier avec un identifiant unique. Trier par date, afin que votre récent crash soit le premier sous-dossier. À l'intérieur, commencez par regarder stderr.log
et system.log
.
Également directement sous CoreSimulator
, voir CoreSimulator.log
et Simulator.log
.
Je suis sûr que vous pouvez le voir dans l'application OS X Console située dans Utilitaires. Si je me trompe, assurez-vous de me voter pour que je supprime cela.
MISE À JOUR:
Plus précisément (à partir d'OSX 10.11.6),
Lorsqu'une application se bloque sur l'émulateur, un sous-dossier (avec un identifiant unique) est ajouté à:
~/Bibliothèque/Logs/CoreSimulator
Dans ce cadre, commencez par examiner stderr.log
et system.log
.
Lorsque l'émulateur lui-même se bloque, un sous-dossier est ajouté à:
~/Bibliothèque/Logs/DiagnosticReports
Ne confondez pas ce chemin avec
/ Bibliothèque/Journaux
(manquant ~
au début), qui contient différents rapports sur votre Mac.
Voici quelque chose qui a fonctionné pour moi dans un cas spécial ... Mon application se bloquait avec SIGKILL à la fin. Je verrais l'exception dans main.m pendant quelques secondes, puis l'application terminerait de se terminer - donc, aucune chance d'obtenir la trace arrière.
J'ai fait beaucoup de recherches sur "où le simulateur stocke-t-il ses journaux de plantage" et je n'ai jamais réussi à trouver une réponse. Cependant, l'astuce suivante m'a été très utile et j'ai pu récupérer le journal des accidents à la volée:
Fondamentalement, ouvrez /Applications/Utilities/CrashReporterPrefs.app et modifiez le paramètre sur "Developer". Cela entraînera CrashReporter pour afficher une fenêtre contextuelle avec le journal des plantages après le crash de votre application.
J'ai trouvé cela dans la section "Affichage de la console du simulateur iOS et des journaux de plantage" dans ce document d'Apple: http://developer.Apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125- Using_iOS_Simulator/ios_simulator_application.html
C'est beaucoup plus fiable. En seulement quelques étapes, j'ai pu trouver le numéro de ligne source et le nom de la méthode:
Les journaux de plantage de crash apparaîtront sous ~/Library/Logs/CrashReporter.
Lorsque Xcode obtient des journaux de plantage d'un appareil connecté, il les stocke dans des sous-dossiers de ~/Library/Logs/CrashReporter/MobileDevice
Pour moi, c'était une expression que j'avais ajoutée à la fenêtre de surveillance du débogueur. Lorsqu'un point d'arrêt était atteint, la mauvaise expression provoquait la défaillance de XCode.