Qu'est-ce que le format de fichier CRASH ?
Un fichier .crash est un rapport de plantage Apple généré automatiquement lorsqu'une application ou un processus système se termine de manière inattendue sur macOS, iOS, iPadOS, tvOS ou watchOS. Le rapport capture l'état du processus au moment de la défaillance, fournissant aux développeurs les informations nécessaires pour diagnostiquer le bogue sous-jacent.
Les anciens fichiers .crash (jusqu'à macOS 11 Big Sur) sont du texte brut en UTF-8. Ils commencent par un en-tête structuré enregistrant l'identifiant de l'incident (un UUID), le modèle de matériel, la version du système d'exploitation, le nom du processus, le type d'exception et la raison de la terminaison. Sous l'en-tête se trouvent les traces d'appels (stack backtraces) par thread - des listes d'adresses d'appels de fonctions - suivies d'un tableau de toutes les images binaires (frameworks et bibliothèques) chargées dans le processus au moment du plantage, avec leurs adresses de chargement en mémoire et leurs UUID de build.
Depuis macOS 12 Monterey (2021), Apple a remplacé le conteneur sous-jacent par le format .ips (Incident Progress Stream), un objet JSON. Les fichiers apparaissent toujours avec l'extension .crash dans le Finder et Console.app pour des raisons de rétrocompatibilité, mais leur contenu est désormais du JSON structuré avec des clés telles que cpuType, osVersion, threads et binaryImages.
Les traces d'appels dans les rapports non symbolisés affichent des adresses mémoire hexadécimales brutes. La conversion de celles-ci en noms de fonctions lisibles nécessite le paquet de symboles de débogage .dSYM correspondant pour chaque binaire listé dans le rapport. Xcode Organizer symbolise automatiquement les rapports de plantage iOS et tvOS lorsque le bon .dSYM est disponible.
Sur macOS, les rapports de plantage sont stockés dans ~/Library/Logs/DiagnosticReports/ pour les processus utilisateur et /Library/Logs/DiagnosticReports/ pour les processus système. Les journaux de plantage iOS sont récupérés via Xcode Organizer ou le répertoire ~/Library/Logs/CrashReporter/MobileDevice/.
Sécurité et sûreté
RISQUE : LOWLes fichiers de rapport de plantage ne contiennent aucun code exécutable et ne présentent aucun risque de sécurité en soi. Ils peuvent contenir des données sensibles pour la vie privée : nom d'utilisateur (dans les chemins de fichiers), modèle d'appareil, noms d'applications et occasionnellement des chaînes d'arguments ou des extraits de mémoire. Le processus de soumission de diagnostic d'Apple demande le consentement de l'utilisateur avant d'envoyer des rapports de plantage à Apple.
Détails du format
en bref- Windows Error Reporting / Référence générique de vidage de plantage - Certaines applications tierces (par exemple Unity, Electron) sur Windows enregistrent également des résumés de plantage en texte brut avec une extension .crash, distincte du format d'Apple.
Programmes qui ouvrent les fichiers CRASH
Détails techniques
spécifications approfondies| Format hérité | Texte brut UTF-8 (macOS jusqu'à Big Sur ; iOS jusqu'à iOS 15) |
| Format moderne | Objet JSON (conteneur .ips renommé .crash pour la compatibilité - macOS 12 Monterey+) |
| Signature de fichier héritée | En-tête Incident Identifier: <UUID> au début du fichier |
| Signature de fichier moderne | { à l'offset d'octet 0 (objet JSON) |
| Champs d'en-tête clés | Type/codes d'exception, raison de la terminaison, version de l'OS, modèle de matériel, nom du processus et PID |
| Traces d'appels | Trace d'appels par thread des adresses d'appel (noms de fonctions symbolisés ou hexadécimal brut) |
| Liste des images binaires | Adresses de chargement et UUID de tous les frameworks et bibliothèques chargés au moment du plantage |
| Symbolisation | Les adresses hexadécimales brutes sont converties en noms de fonctions à l'aide des paquets de débogage .dSYM correspondants |
| Chemin de stockage macOS | ~/Library/Logs/DiagnosticReports/ (processus utilisateur) et /Library/Logs/DiagnosticReports/ (système) |
| Récupération iOS | Xcode Organizer (onglet Crashes) ou ~/Library/Logs/CrashReporter/MobileDevice/ |
| Couverture de plateforme | macOS, iOS, iPadOS, tvOS, watchOS |
| Taille de fichier typique | 10 Ko - 500 Ko |
| Publié | Mac OS X 10.0 (2001); iOS crash reports since iPhone OS 2.0 (2008) |
| Dernière version | JSON-based format (macOS 12 Monterey+, 2021) |
| Spécification | developer.apple.com |
Conversions CRASH
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers CRASH.