29 votes

Comment obtenir les fichiers de diagnostic système de MacOS ?

J'essaie de déboguer une application qui s'est plantée (ou suspendue). Comment puis-je obtenir les fichiers de diagnostic du crash ?

26voto

Adam Points 6342

Les rapports de collision individuels sont stockés dans /Library/Logs/CrashReporter mais il existe un outil de collecte des journaux à l'échelle du système appelé sysdiagnose .

Une fois que vous commencez à rencontrer le problème, maintenez enfoncées les 4 touches de modification et appuyez sur le point ".". shift + control + option + command + .

Vous devriez voir l'écran clignoter en blanc. Après environ 15 secondes, une fenêtre du Finder s'ouvrira avec un fichier sysdiagnose en surbrillance.

Once you start experiencing the issue, hold down the "shift"+"control"+"option"+"command" keys and then press the period "." key.

Ce raccourci clavier exécute simplement la commande sysdiagnose Ainsi, si vous êtes familier avec le Terminal et que vous souhaitez transmettre un ID de processus, vous pouvez obtenir des informations de débogage améliorées sur ce programme spécifique. Le raccourci clavier appelle l'outil sans arguments et ne capture que le rapport de base.

0 votes

Y a-t-il un moyen d'obtenir cela par ligne de commande ?

1 votes

~/Library/Logs/CrashReporter ne contient pas .crash des fichiers. Au lieu de cela : /Library/Logs/DiagnosticReports y ~/Library/Logs/DiagnosticReports

0 votes

L'accord clé pour sysdiagnose ne fonctionnera que si le démon stackshot fonctionne. Dans ma réponse le launchctl démarrera le démon.

22voto

Graham Perrin Points 7373

Apple sysdiagnose

Ce shell script(sur 10.8 et inférieur) et programme exécutable du même nom sur 10.9 :

  • recueille des informations de diagnostic sur l'ensemble du système
  • fait partie intégrante d'OS X Lion et des versions ultérieures
  • n'est pas disponible en téléchargement séparé
  • n'est pas open source (j'ai demandé à Apple de le rendre ainsi).

Préparation de l'approche clavier seul de sysdiagnose

Dans le Terminal, exécutez la commande suivante.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • si vous êtes invité à saisir un mot de passe, entrez votre mot de passe d'administrateur du système d'exploitation.
  • c'est un cas unique, pas besoin de répéter la commande.

Notez par écrit l'accord de clé suivant, vous en aurez besoin plus tard :

Control - Option - Command - Shift - .

Diagnostic par le système

Lorsqu'un problème survient :

  1. utiliser l'accord clé
  2. pendant au moins dix secondes, ne touchez à rien
  3. accordez cinq ou dix minutes pour toutes les parties de l'enquête. sysdiagnose routine à compléter - il suffit d'attendre aussi longtemps que possible (il n'y aura pas d'indication de la progression à l'écran)
  4. Le Finder devrait ouvrir une fenêtre sur le résultat final.

Exceptionnellement

Dans de rares cas, un problème peut empêcher sysdiagnose de se terminer (j'ai fait des suggestions d'amélioration à Apple). Si cela se produit, et si vous êtes sûr d'avoir attendu suffisamment longtemps, il peut être judicieux de redémarrer le Mac. Ensuite :

  1. dans le Finder, allez dans /private/var/tmp
  2. rechercher un fichier ou un dossier dont le nom commence par sysdiagnose_
  3. si ce fichier ou ce dossier existe, déplacez-le vers un endroit pratique - votre bureau, peut-être.

Conseils

Sans l'accord de la clé, vous pouvez exécuter sysdiagnose à partir de la ligne de commande (voir ci-dessous, page du manuel Apple). Mais il est souvent plus utile, ou nécessaire, d'utiliser l'accord de clé - soyez donc préparé.

Bien que je n'encourage pas l'imprudence, vous pouvez être un peu imprudent avec Control - Option - Command - Shift - . si vous luttez pour éviter les fn sur votre ordinateur portable, ne vous inquiétez pas ; l'inclure par accident ne devrait pas empêcher le fonctionnement de sysdiagnose .


Analyse humaine du diagnostic effectué par le système

Conseil : quelqu'un pourrait souhaiter poser une question distincte sur l'analyse des résultats de l'enquête. sysdiagnose - une réponse plus généralisée pourrait être utile.

Si sysdiagnose_ de l'onglet /tmp la zone est un fichier

Présence d'un sysdiagnose_….tar.gz indique que toutes les parties du fichier sysdiagnose et que les résultats ont été archivés. Si vous le souhaitez, ouvrez l'archive - son contenu apparaîtra sous forme de dossier.

Si sysdiagnose_ de l'onglet /tmp la zone est un dossier

Présence d'un sysdiagnose_… (pas un dossier .tar.gz ) indique que soit :

  • la routine a été interrompue avant d'être terminée ; ou
  • une partie de la routine n'a pas pu se terminer.

Dans l'archive/dossier

Certains fichiers sont lisibles par l'homme et peuvent aider à résoudre un problème.

D'autres fichiers sont plus orientés vers les développeurs.

En rapport :

Pour un incomplet course de sysdiagnose il peut être utile d'accorder une certaine attention aux fichiers qui sont anormalement vide


Notes techniques et autres

stackshot(1) OS X Page de manuel

sysdiagnose(1) Page de manuel OS X

Une partie de ce qui est ci-dessus est une édition plus générique de une réponse acceptée qui apparaît ailleurs.


Informations de diagnostic et d'utilisation, autres fichiers d'intérêt

Laissez-vous guider par la liste des journaux dans Console :

A screenshot of the sidebar of Console

Attendez-vous à trouver des fichiers dans les chemins suivants :

  • ~/Bibliothèque/Logs/DiagnosticReports
  • /Bibliothèque/Logs/DiagnosticReports
  • ~/Bibliothèque/Logs
  • /Bibliothèque/Logs
  • /private/var/log

3 votes

Graham : c'est un jour + : quelque chose à apprendre ! Je pense que ce genre d'outil profiterait à toutes les entrées des sysadmins s'il était open source.

1 votes

Bonjour, une idée sur la façon dont cet accord clé peut être désactivé ?

0 votes

@StevieD a probablement déchargé le démon stackshot. Enfin, s'il y a encore quelque chose comme ça dans MacOS.

4voto

kenorb Points 11627

Console

Pour trouver les fichiers de diagnostic ou de collision existants, ouvrez Console et trouver les fichiers dans Rapports des utilisateurs (situé à ~/Library/Logs/DiagnosticReports ) dans ou Rapports sur le système (situé à /Library/Logs/DiagnosticReports ) sections. Voir : Où puis-je trouver mes journaux d'accidents ?

sysdiagnose

Conformément à officiel sysdiagnose instructions pour MacOS, vous pouvez déclencher une sysdiagnose soit par :

Note : Pour accéder au lien ci-dessus, vous devez vous connecter à Développeur Site Apple d'abord.

  • Appuyez brièvement et simultanément sur les touches suivantes :

    Command - Option - Shift - Control - Period (.)

    et attendez. Le site sysdiagnose Le processus peut prendre 10 minutes. Une fois terminé, Finder devrait automatiquement apparaître en montrant le fichier généré dans /private/var/tmp/ (par exemple sysdiagnose_2017.mm.dd_hh-mm-ss-0000_12345.tar.gz ).

  • Déclencher un sysdiagnose à partir du Terminal en entrant cette commande :

    sudo sysdiagnose

Décharge de base

Pour générer des vidages de noyau de collision, voir : Comment générer des vidages de noyau sous MacOS ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X