Co to jest format pliku CRASH?
Plik .crash to raport o błędzie Apple generowany automatycznie, gdy aplikacja lub proces systemowy nieoczekiwanie zakończy pracę w systemie macOS, iOS, iPadOS, tvOS lub watchOS. Raport rejestruje stan procesu w momencie awarii, dostarczając programistom informacji niezbędnych do zdiagnozowania błędu.
Starsze pliki .crash (do systemu macOS 11 Big Sur) to zwykły tekst w formacie UTF-8. Zaczynają się od ustrukturyzowanego nagłówka zawierającego identyfikator zdarzenia (UUID), model sprzętu, wersję systemu operacyjnego, nazwę procesu, typ wyjątku i przyczynę zakończenia. Poniżej nagłówka znajdują się ślady stosu (stack backtraces) dla poszczególnych wątków - listy adresów wywołań funkcji - a następnie tabela wszystkich obrazów binarnych (frameworków i bibliotek) załadowanych do procesu w momencie awarii, wraz z ich adresami ładowania w pamięci i identyfikatorami UUID kompilacji.
Od wersji macOS 12 Monterey (2021) Apple zmieniło bazowy kontener na format .ips (Incident Progress Stream), który jest obiektem JSON. Pliki nadal pojawiają się z rozszerzeniem .crash w Finderze i Console.app w celu zachowania kompatybilności wstecznej, ale ich zawartość to teraz ustrukturyzowany JSON z kluczami takimi jak cpuType, osVersion, threads i binaryImages.
Ślady stosu w raportach bez symboli (unsymbolicated) pokazują surowe szesnastkowe adresy pamięci. Konwersja tych adresów na czytelne nazwy funkcji wymaga dopasowanego pakietu symboli debugowania .dSYM dla każdego pliku binarnego wymienionego w raporcie. Xcode Organizer automatycznie symbolizuje raporty o błędach iOS i tvOS, gdy dostępny jest poprawny plik .dSYM.
W systemie macOS raporty o błędach są przechowywane w ~/Library/Logs/DiagnosticReports/ dla procesów użytkownika oraz /Library/Logs/DiagnosticReports/ dla procesów systemowych. Logi błędów iOS są pobierane za pośrednictwem Xcode Organizer lub katalogu ~/Library/Logs/CrashReporter/MobileDevice/.
Bezpieczeństwo
RYZYKO: LOWPliki raportów o błędach nie zawierają kodu wykonywalnego i same w sobie nie stanowią zagrożenia dla bezpieczeństwa. Mogą zawierać dane wrażliwe dla prywatności: nazwę użytkownika (w ścieżkach plików), model urządzenia, nazwy aplikacji, a sporadycznie ciągi argumentów lub fragmenty pamięci. Proces przesyłania danych diagnostycznych Apple prosi o zgodę użytkownika przed wysłaniem raportów do Apple.
Szczegóły formatu
w pigułce- Windows Error Reporting / Ogólne odniesienie do zrzutów awaryjnych - Niektóre aplikacje innych firm (np. Unity, Electron) w systemie Windows również zapisują tekstowe podsumowania awarii z rozszerzeniem .crash, co jest formatem odrębnym od formatu Apple.
Programy otwierające pliki CRASH
Szczegóły techniczne
specyfikacja| Starszy format | Zwykły tekst UTF-8 (macOS do Big Sur; iOS do iOS 15) |
| Nowoczesny format | Obiekt JSON (kontener .ips o zmienionej nazwie na .crash dla kompatybilności - macOS 12 Monterey+) |
| Sygnatura pliku (starsza) | Nagłówek „Incident Identifier: <UUID>” na początku pliku |
| Sygnatura pliku (nowoczesna) | { na offsecie bajtowym 0 (obiekt JSON) |
| Kluczowe pola nagłówka | Typ/kody wyjątków, przyczyna zakończenia, wersja OS, model sprzętu, nazwa procesu i PID |
| Ślady stosu | Ślad wsteczny (backtrace) dla każdego wątku z adresami wywołań (nazwy funkcji po symbolizacji lub surowe dane szesnastkowe) |
| Lista obrazów binarnych | Adresy ładowania i identyfikatory UUID wszystkich frameworków i bibliotek załadowanych w momencie awarii |
| Symbolizacja | Konwersja surowych adresów szesnastkowych na nazwy funkcji przy użyciu pasujących pakietów debugowania .dSYM |
| Ścieżka przechowywania macOS | ~/Library/Logs/DiagnosticReports/ (procesy użytkownika) i /Library/Logs/DiagnosticReports/ (system) |
| Pobieranie z iOS | Xcode Organizer (karta Crashes) lub ~/Library/Logs/CrashReporter/MobileDevice/ |
| Obsługiwane platformy | macOS, iOS, iPadOS, tvOS, watchOS |
| Typowy rozmiar pliku | 10 KB - 500 KB |
| Wydano | Mac OS X 10.0 (2001); iOS crash reports since iPhone OS 2.0 (2008) |
| Najnowsza wersja | JSON-based format (macOS 12 Monterey+, 2021) |
| Specyfikacja | developer.apple.com |
Konwersje CRASH
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki CRASH.