Прерывание 1 - Исключение отладки ( #DB - Debug Exception )

Тип исключения - 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 © Александр Семенко.
TopList

Hosted by uCoz