Подтвердить что ты не робот

Что означает 8badf00d?

Иногда мое приложение iPhone вылетает со странным crashlog, который считывает код исключения 0x8badf00d. В стеке показаны случайные снимки выполнения приложения, но ничего подозрительного. Это происходит очень редко, и я не могу понять, как его воспроизвести. Кто-нибудь знает больше об этом виде кода исключения и исключения?

Вот выдержка из моих crashlogs:

Тип исключения: 00000020
Коды исключений: 0x8badf00d
Выделенная тема: 0

Информация о приложении:
Не удалось отключить

Тема 0:
...
< ничего подозрительного здесь >
...

Неизвестный поток разбился с неизвестным ароматом: 5, state_count: 1

4b9b3361

Ответ 1

0x8badf00d - это код ошибки, который сторожевой таймер поднимается, когда приложение слишком долго запускается или завершается. См. Apple Отчет о сбоях для приложений iPhone OS document

Ответ 3

Если вы получаете Exception Type: 00000020 и Exception Codes: 0x8badf00d, то это отчеты о сбое тайм-аута сторожевого таймера. Код исключения 0x8badf00d называется "ate bad food".

Наиболее распространенный reason for this crash is synchronous activity on main thread. Исправление составляет switch to asynchronous activity в основном потоке.

Снимок экрана для документа Apple

Подробнее см. этот документ Apple.

Ответ 4

Это код ошибки, добавленный разработчиком с хорошим чувством юмора. Поскольку шестнадцатеричное число использует буквы, а также цифры, можно найти шестнадцатеричные числа, которые выглядят примерно так же, как английские слова, такие как "0xdeadbeef" и т.д. Я уверен, что исключение имеет конкретное значение, но если нет никаких основных симптомов связанный с этим, вы можете, вероятно, игнорировать его без особого беспокойства.

Ответ 5

Это какая-то программистская идея шутки. Вы должны выбрать номер для своего кода, но этот номер не обязательно означает что-то само по себе. 8badf00d - это еще один способ записать номер 2,343,432,205 и был выбран потому, что он выглядит "забавным", если он представлен в шестнадцатеричном виде для журнала исключений.

Ответ 6

из wikipedia 0xBAADF00D ( "плохая еда" ) используется Microsoft LocalAlloc (LMEM_FIXED) для указания неинициализированной выделенной памяти кучи при использовании кучи отладки. [7]