| Предыдущий | Следующий |
| KERN_MEMORY_FAILURE | KERN_ALREADY_IN_SET |
KERN_MEMORY_ERROR
KERN_MEMORY_ERROR сообщает о сбое, когда Mach пытается получить данные из объекта памяти во время страничной ошибки. XNU отличает его от KERN_MEMORY_FAILURE: здесь объект указывает, что данные не удалось вернуть, но последующий доступ к ним может завершиться успешно.
Следовательно, это состояние поставки данных или внешнего страничного обработчика, а не просто неверный виртуальный адрес. Mach сопоставляет диапазоны адресов объектам памяти и при страничной ошибке обычно запрашивает содержимое страницы у объекта-подложки или pager. Временная невозможность предоставить данные может проявиться при доступе, а не при создании сопоставления.
Что исследовать
- Состояние, доступность и жизненный цикл объекта-подложки.
- Ошибки ввода-вывода, файловой системы или pager за тот же интервал.
- Можно ли безопасно повторить операцию после устранения базового состояния.
- Становится ли ошибка устойчивой для той же страницы; повторяемость может указывать на серьёзную проблему хранилища.
Не сводите этот результат к KERN_INVALID_ADDRESS. Виртуальный адрес может быть действительным; проблема в том, что сопоставленный объект не смог в тот момент предоставить данные страницы.
Ссылки
- XNU: kern_return.h
- Руководство Apple по программированию ядра: объекты памяти
- Справочник GNU Mach: внешнее управление памятью
Нужно найти другой код? Найти другой код состояния или ошибки.