December 12 2017 08:27:52
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Точки останова
ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ И ВЫПОЛНЕНИЕ ОПЕРАЦИЙ

Точки останова по выборке команд обрабатываются как ошибки, а точки останова по обращению к данным - как ловушки. Срабатывание точки останова при выборке команды происходит только тогда, когда линейный адрес точки останова указывает на первый байт команды (включая префиксы). Срабатывание точки останова при обращении к данным или портам ввода/вывода имеет место, когда заданный адрес операнда полностью или частично попадает в область срабатывания точки останова (область определяется регистром DR/и полем LENi в регистре DR7).

GD - идентификация обращений к регистрам отладки. Когда установлено значение бита GD = 1, то обращение к регистрам отладки приводит к исключению #DB. В этом случае перед реализацией исключения #DB в регистре состояния DR6 устанавливается значение бита BD = 1, а бит GD сбрасывается в «0», что дает возможность обработчику исключения #DB обращаться к регистрам отладки.

GE, LE -не используемые (резервированные) биты, которые рекомендуется устанавливать в «1».

Gi - разрешение глобальных точек останова. Установка этого бита разрешает срабатывание соответствующей контрольной точки во всех задачах. Если выполняется условие срабатывания i-й контрольной точки (определенное регистром DRi и полями LENi, R/Wi в регистре DR7) и установлено значение бита Gi = 1, то реализуется исключение #DB. Бит Gi не изменяется при переключении задач.

Li - разрешение локальных точек останова. Установка этого бита разрешает срабатывание соответствующей контрольной точки в текущей задаче. Если выполняется условие срабатывания i-й контрольной точки и значение бита Li= 1, то реализуется исключение #DB. Бит Li автоматически сбрасывается в «0» при переключении задач.

Так как точки останова по выборке команды обрабатываются как ошибки, то после возврата из подпрограммы обработки процессор снова попытается выполнить команду, на которую установлена точка останова, и снова будет реализовано исключение #DB. Для предотвращения такого зацикливания на одной точке останова в архитектуре процессора предусмотрен признак RF в регистре EFLAGS. Когда установлено значение RF = 1, то процессор игнорирует точки останова по выборке команды. Значение флага RF не оказывает влияния на срабатывание точек останова по выборке данных или точек останова по операциям ввода/вывода. Процессор автоматически устанавливает флаг RF = 1 перед вызовом любого исключения-отказа, кроме #DB, которое было вызвано точкой останова по выборке команды. Программа-обработчик исключения #DB может либо запретить точку останова, либо установить значение признака RF = 1 в содержимом регистра EFLAGS, хранящемся в стеке. При возврате из обработчика команда IRETD восстановит значение признака RF из хранящегося в стеке содержимого регистра EFLAGS. Команды POPF, POPFD и IRET не изменяют значение RF. После возврата повторной генерации исключения #DB не произойдет, так как значение признака RF = 1. Процессор автоматически устанавливает значение RF = 0 после выполнения любой команды, кроме команды IRETD и команд JMP, CALL, INT n, которые вызывают переключение задач. Процессор не устанавливает признак RF перед вызовом исключений-ловушек, аппаратных или программных прерываний.

Регистр состояния DR6 содержит информацию, которая указывает причину последнего исключения отладки #DB. Отдельные биты содержимого DR6 имеют следующее назначение:

ВТ-ошибка при переключении задач. Принимает значение ВТ = 1, если исключение #DB имело место из-за переключения на задачу, имеющую бит Т = 1 в сегменте TSS. Исключение #DB происходит после выполнения первой команды в новой задаче. Если исключение #DB обрабатывается через шлюз задачи, то бит Т в сегменте TSS обработчика должен иметь значение «1».

BS - реализация пошагового режима отладки. Принимает значение BS = 1, если исключение #DB имело место из-за установленного значения признака TF = 1 в регистре EFLAGS. Исключение пошагового режима самое приоритетное среди исключений отладки. Вместе с битом BS может быть установлен любой другой бит в регистре DR6.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.04 секунд 2,295,834 уникальных посетителей