Hvad er CRASH-filformatet?
En .crash-fil er en Apple-fejlrapport, der genereres automatisk, når et program eller en systemproces afsluttes uventet på macOS, iOS, iPadOS, tvOS eller watchOS. Rapporten fanger procestilstanden i det øjeblik, fejlen opstod, hvilket giver udviklere de nødvendige oplysninger til at diagnosticere den underliggende fejl.
Ældre .crash-filer (til og med macOS 11 Big Sur) er almindelig UTF-8-tekst. De begynder med en struktureret overskrift, der registrerer hændelsesidentifikatoren (en UUID), hardwaremodel, OS-version, procesnavn, undtagelsestype og årsag til afslutning. Under overskriften findes stack-backtraces pr. tråd - lister over funktionskaldsadresser - efterfulgt af en tabel over alle binære billeder (frameworks og biblioteker), der var indlæst i processen på tidspunktet for nedbruddet, med deres hukommelsesadresser og build-UUID'er.
Siden macOS 12 Monterey (2021) har Apple skiftet den underliggende container til .ips (Incident Progress Stream)-formatet, som er et JSON-objekt. Filer vises stadig med filtypen .crash i Finder og Console.app af hensyn til bagudkompatibilitet, men deres indhold er nu struktureret JSON med nøgler som cpuType, osVersion, threads og binaryImages.
Stack-backtraces i usymboliserede rapporter viser rå hex-hukommelsesadresser. Konvertering af disse til læsbare funktionsnavne kræver den matchende .dSYM-fejlsøgningssymbolpakke for hver binær fil, der er anført i rapporten. Xcode Organizer symboliserer automatisk iOS- og tvOS-fejlrapporter, når den korrekte .dSYM er tilgængelig.
På macOS gemmes fejlrapporter i ~/Library/Logs/DiagnosticReports/ for brugerprocesser og /Library/Logs/DiagnosticReports/ for systemprocesser. iOS-fejllogfiler hentes via Xcode Organizer eller mappen ~/Library/Logs/CrashReporter/MobileDevice/.
Sikkerhed og tryghed
RISIKO: LOWFejlrapportfiler indeholder ingen eksekverbar kode og udgør ingen sikkerhedsrisiko i sig selv. De kan indeholde privatlivsfølsomme data: brugernavn (i filstier), enhedsmodel, app-navne og lejlighedsvis argumentstrenge eller hukommelsesuddrag. Apples proces for indsendelse af diagnosticering beder om brugerens samtykke, før fejlrapporter sendes til Apple.
Formatdetaljer
kort fortalt- Windows Error Reporting / Generisk Crash Dump Reference - Nogle tredjepartsapps (f.eks. Unity, Electron) på Windows gemmer også fejlresuméer i almindelig tekst med filtypen .crash, hvilket er forskelligt fra Apples format.
Programmer der åbner CRASH-filer
Tekniske detaljer
dyb specifikation| Gammelt format | Almindelig UTF-8-tekst (macOS til og med Big Sur; iOS til og med iOS 15) |
| Moderne format | JSON-objekt (.ips-container omdøbt til .crash for kompatibilitet - macOS 12 Monterey+) |
| Gammel filsignatur | Incident Identifier: <UUID> overskrift i starten af filen |
| Moderne filsignatur | { ved byte-forskydning 0 (JSON-objekt) |
| Vigtige overskriftsfelter | Undtagelsestype/-koder, afslutningsårsag, OS-version, hardwaremodel, procesnavn og PID |
| Stack-traces | Backtrace pr. tråd af kaldsadresser (symboliserede funktionsnavne eller rå hex) |
| Liste over binære billeder | Indlæsningsadresser og UUID'er for alle frameworks og biblioteker indlæst ved nedbruddet |
| Symbolisering | Rå hex-adresser konverteres til funktionsnavne ved hjælp af matchende .dSYM-fejlsøgningspakker |
| Lagringssti på macOS | ~/Library/Logs/DiagnosticReports/ (brugerprocesser) og /Library/Logs/DiagnosticReports/ (system) |
| iOS-hentning | Xcode Organizer (fanen Crashes) eller ~/Library/Logs/CrashReporter/MobileDevice/ |
| Platformsdækning | macOS, iOS, iPadOS, tvOS, watchOS |
| Typisk filstørrelse | 10 KB - 500 KB |
| Udgivet | Mac OS X 10.0 (2001); iOS crash reports since iPhone OS 2.0 (2008) |
| Seneste version | JSON-based format (macOS 12 Monterey+, 2021) |
| Specifikation | developer.apple.com |
CRASH-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om CRASH-filer.