Hva er CRASH-filformatet?
En .crash-fil er en Apple krasjrapport som genereres automatisk når en applikasjon eller systemprosess avsluttes uventet på macOS, iOS, iPadOS, tvOS eller watchOS. Rapporten fanger opp prosesstilstanden i det øyeblikket feilen oppstod, noe som gir utviklere informasjonen som trengs for å diagnostisere den underliggende feilen.
Eldre .crash-filer (frem til macOS 11 Big Sur) er ren UTF-8-tekst. De begynner med et strukturert hode som registrerer hendelsesidentifikatoren (en UUID), maskinvaremodell, OS-versjon, prosessnavn, unntakstype og avslutningsårsak. Under hodet er det «stack backtraces» per tråd - lister over funksjonskalladresser - etterfulgt av en tabell over alle binære bilder (rammeverk og biblioteker) som var lastet inn i prosessen ved krasjtiden, med deres minneadresser og bygg-UUID-er.
Siden macOS 12 Monterey (2021) har Apple byttet ut den underliggende beholderen til .ips (Incident Progress Stream)-formatet, som er et JSON-objekt. Filer vises fortsatt med filendelsen .crash i Finder og Console.app for bakoverkompatibilitet, men innholdet er nå strukturert JSON med nøkler som cpuType, osVersion, threads og binaryImages.
«Stack backtraces» i usymboliserte rapporter viser rå heksadesimale minneadresser. Konvertering av disse til lesbare funksjonsnavn krever den samsvarende .dSYM-feilsøkingspakken for hver binærfil oppført i rapporten. Xcode Organizer symboliserer iOS- og tvOS-krasjrapporter automatisk når riktig .dSYM er tilgjengelig.
På macOS lagres krasjrapporter i ~/Library/Logs/DiagnosticReports/ for brukerprosesser og /Library/Logs/DiagnosticReports/ for systemprosesser. iOS-krasjlogger hentes via Xcode Organizer eller mappen ~/Library/Logs/CrashReporter/MobileDevice/.
Sikkerhet og trygghet
RISIKO: LOWKrasjrapportfiler inneholder ingen kjørbar kode og utgjør ingen sikkerhetsrisiko i seg selv. De kan inneholde personvernsensitive data: brukernavn (i filstier), enhetsmodell, app-navn og av og til argumentstrenger eller minnefragmenter. Apples prosess for innsending av diagnostikk ber om brukersamtykke før krasjrapporter sendes til Apple.
Formatdetaljer
i et nøtteskall- Windows Error Reporting / Generell referanse for krasjdumper - Enkelte tredjepartsapper (f.eks. Unity, Electron) på Windows lagrer også krasjsammendrag i ren tekst med filendelsen .crash, uavhengig av Apples format.
Programmer som åpner CRASH-filer
Tekniske detaljer
dyp spesifikasjon| Eldre format | Ren UTF-8-tekst (macOS til og med Big Sur; iOS til og med iOS 15) |
| Moderne format | JSON-objekt (.ips-beholder gitt nytt navn til .crash for kompatibilitet - macOS 12 Monterey+) |
| Eldre filsignatur | Incident Identifier: <UUID> hode i starten av filen |
| Moderne filsignatur | { ved byte-offset 0 (JSON-objekt) |
| Viktige hodefelt | Unntakstype/koder, avslutningsårsak, OS-versjon, maskinvaremodell, prosessnavn og PID |
| Stack traces | Backtrace per tråd med kalladresser (symboliserte funksjonsnavn eller rå heksadesimal) |
| Liste over binære bilder | Minneadresser og UUID-er for alle rammeverk og biblioteker som var lastet ved krasjtiden |
| Symbolisering | Rå heksadesimale adresser konverteres til funksjonsnavn ved hjelp av samsvarende .dSYM-feilsøkingspakker |
| Lagringssti på macOS | ~/Library/Logs/DiagnosticReports/ (brukerprosesser) og /Library/Logs/DiagnosticReports/ (system) |
| iOS-henting | Xcode Organizer (Crashes-fanen) eller ~/Library/Logs/CrashReporter/MobileDevice/ |
| Plattformdekning | macOS, iOS, iPadOS, tvOS, watchOS |
| Typisk filstørrelse | 10 KB - 500 KB |
| Utgitt | Mac OS X 10.0 (2001); iOS crash reports since iPhone OS 2.0 (2008) |
| Siste versjon | JSON-based format (macOS 12 Monterey+, 2021) |
| Spesifikasjon | developer.apple.com |
CRASH-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om CRASH-filer.