Тип исключения - Trap (ловушка) или Fault
(ошибка). Ошибка это или ловушка, определяет содержимое регистра DR6 и других
регистров отладки (см. таблицу).
Описание
Определяет достижение одного или нескольких условий отладки.
Условия возникновения исключения отладки и соответствующие типы исключений
Условие возникновения исключения | Тип Исключения |
Контрольная точка по выборке команды | Fault |
Контрольная точка по данным | Trap |
Контрольная точка по вводу/выводу (I/O) | Trap |
Основное условие обнаружения (совместно с эмуляцией закольцовки) | Fault |
Пошаговое выполнение | Trap |
Переключение задач | Trap |
Выполнение команды INT 1 | Trap |
Код ошибки: нет. Вся информация - в регистрах отладки.
Указатель кода для:
Fault - сохранённые CS:EIP указывают на команду, вызвавшую исключение.
Trap - сохранённые CS:EIP указывают на следующую команду после команды, вызвавшей исключение.
Изменение состояния программы для:
Fault - не меняется, т.к. исключение возникло перед выполнением "виноватой" команды. Программу можно возобновить.
Trap - не меняется, только если обработчик этого исключения находится в отдельной задаче (при возникновении исключения контекст прерванной программы полностью сохранится в её TSS) - тогда программу можно возобновить.
Вопросы? Замечания? Пишите: sasm@narod.ru |
Copyright © Александр Семенко. |