Что такое формат файла CRASH?
Файл .crash - это отчет о сбое Apple, создаваемый автоматически при неожиданном завершении работы приложения или системного процесса в macOS, iOS, iPadOS, tvOS или watchOS. Отчет фиксирует состояние процесса в момент сбоя, предоставляя разработчикам информацию, необходимую для диагностики основной ошибки.
Старые файлы .crash (до macOS 11 Big Sur включительно) представляют собой обычный текст в кодировке UTF-8. Они начинаются со структурированного заголовка, содержащего идентификатор инцидента (UUID), модель оборудования, версию ОС, имя процесса, тип исключения и причину завершения. Под заголовком находятся трассировки стека для каждого потока - списки адресов вызовов функций - за которыми следует таблица всех бинарных образов (фреймворков и библиотек), загруженных в процесс в момент сбоя, с адресами их загрузки в память и UUID сборки.
Начиная с macOS 12 Monterey (2021), Apple перешла на использование формата .ips (Incident Progress Stream) в качестве базового контейнера, который представляет собой объект JSON. Файлы по-прежнему отображаются с расширением .crash в Finder и Console.app для обратной совместимости, но их содержимое теперь представляет собой структурированный JSON с такими ключами, как cpuType, osVersion, threads и binaryImages.
Трассировки стека в несимволизированных отчетах содержат необработанные шестнадцатеричные адреса памяти. Для их преобразования в читаемые имена функций требуется соответствующий пакет отладочных символов .dSYM для каждого бинарного файла, указанного в отчете. Xcode Organizer автоматически символизирует отчеты о сбоях iOS и tvOS при наличии правильного файла .dSYM.
В macOS отчеты о сбоях хранятся в ~/Library/Logs/DiagnosticReports/ для пользовательских процессов и в /Library/Logs/DiagnosticReports/ для системных процессов. Логи сбоев iOS можно получить через Xcode Organizer или в директории ~/Library/Logs/CrashReporter/MobileDevice/.
Безопасность и защита
РИСК: LOWФайлы отчетов о сбоях не содержат исполняемого кода и сами по себе не представляют угрозы безопасности. Они могут содержать конфиденциальные данные: имя пользователя (в путях к файлам), модель устройства, названия приложений и иногда строки аргументов или фрагменты памяти. Процесс отправки диагностических данных Apple запрашивает согласие пользователя перед отправкой отчетов.
Детали формата
в двух словах- Windows Error Reporting / Справочник по общим дампам сбоев - Некоторые сторонние приложения (например, Unity, Electron) в Windows также сохраняют текстовые сводки сбоев с расширением .crash, которые отличаются от формата Apple.
Программы, открывающие файлы CRASH
Технические подробности
глубокая спецификация| Устаревший формат | Обычный текст UTF-8 (macOS до Big Sur; iOS до iOS 15) |
| Современный формат | Объект JSON (контейнер .ips, переименованный в .crash для совместимости - macOS 12 Monterey+) |
| Сигнатура устаревшего файла | Заголовок Incident Identifier: <UUID> в начале файла |
| Сигнатура современного файла | { со смещением байта 0 (объект JSON) |
| Ключевые поля заголовка | Тип/коды исключения, причина завершения, версия ОС, модель оборудования, имя процесса и PID |
| Трассировки стека | Трассировка адресов вызовов для каждого потока (символизированные имена функций или необработанные hex-данные) |
| Список бинарных образов | Адреса загрузки и UUID всех фреймворков и библиотек, загруженных в момент сбоя |
| Символизация | Преобразование необработанных hex-адресов в имена функций с использованием соответствующих пакетов отладки .dSYM |
| Путь хранения в macOS | ~/Library/Logs/DiagnosticReports/ (пользовательские процессы) и /Library/Logs/DiagnosticReports/ (системные) |
| Получение данных iOS | Xcode Organizer (вкладка Crashes) или ~/Library/Logs/CrashReporter/MobileDevice/ |
| Поддерживаемые платформы | macOS, iOS, iPadOS, tvOS, watchOS |
| Типичный размер файла | 10 КБ - 500 КБ |
| Выпущен | Mac OS X 10.0 (2001); iOS crash reports since iPhone OS 2.0 (2008) |
| Последняя версия | JSON-based format (macOS 12 Monterey+, 2021) |
| Спецификация | developer.apple.com |
Конвертации CRASH
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах CRASH.