| Предыдущий | Следующий |
| KERN_DEFAULT_SET | KERN_INVALID_LEDGER |
KERN_EXCEPTION_PROTECTED
Защищённый путь обработки исключения
KERN_EXCEPTION_PROTECTED имеет более узкое значение, чем общая ошибка проверки потока. XNU определяет его для попытки получить защищённый порт исключений или прервать поток, пока он обрабатывает защищённое исключение.
Следовательно, результат относится к состоянию обработки исключения и защите интерфейса Mach. Его не следует диагностировать как исходное исключение приложения, ошибку памяти или точку останова, которые могли привести к этому состоянию.
Что проверить
- Запишите поток, запрошенную маску или поведение исключения и была ли операция запросом или прерыванием.
- Сохраняйте исходный тип исключения и его код и подкод отдельно от этого возвращаемого значения.
- Проверьте контракт API портов исключений до изменения времени управления потоком.
- Не создавайте гонку между обработкой исключения и завершением или прерыванием потока только ради подавления этого результата.
Ссылки
- Apple XNU: kern_return.h
- XNU: exception_types.h
- Справочник интерфейсов ядра Mach: thread_get_exception_ports
Нужно найти другой код? Найти другой код состояния или ошибки.