| Предыдущий | Следующий |
| KERN_INVALID_POLICY | KERN_ALREADY_WAITING |
KERN_INVALID_OBJECT
KERN_INVALID_OBJECT не является общей ошибкой «недопустимого дескриптора объекта». В XNU этот код конкретно означает, что внешний диспетчер памяти не смог инициализировать объект памяти. Статус относится к протоколу объектов памяти Mach, в котором пейджер или диспетчер памяти взаимодействует с ядром, предоставляя данные для виртуальной памяти.
Этот контекст важен, поскольку обычный прикладной код, как правило, использует более высокоуровневые API памяти и может никогда не увидеть такой результат. Когда он всё же появляется, полезны сведения о жизненном цикле объекта памяти, рукопожатии инициализации и сбое на стороне пейджера, а не необработанный указатель, переданный посторонним клиентом.
Что следует проверить
- Определите реализацию объекта памяти или пейджера, связанную со сбойным запросом.
- Сопоставьте результат с созданием и инициализацией объекта, а также с любой более ранней ошибкой пейджера.
- Отделите этот случай от
KERN_INVALID_ADDRESSиKERN_PROTECTION_FAILURE, которые относятся к отображениям в адресном пространстве задачи. - Сохраняйте идентификаторы целевой задачи и порта объекта памяти там, где их безопасно записывать в журнал.
Ссылки
- Apple XNU: kern_return.h
- Руководство Apple по программированию ядра: память и виртуальная память
- Apple Kernel Programming Guide: обзор Mach
Нужно найти другой код? Найти другой код состояния или ошибки.