Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Регистры отладки





Регистры отладки, форматы которых приведены на рис. 7.14, включают в себя:

□ четыре регистра DR0 — DR3, предназначенные для хранения линейных адресов четырех контрольных точек, каждая из которых независимо может быть определена как контрольная точка по команде или по данным;

□ регистр DR7 управления отладкой, включающий поля, которые определяют свойства контрольных точек и некоторые параметры процесса отладки;

□ регистр DR6 состояния отладки, предназначенный для идентификации причины прерывания отладки;

□ наконец, зарезервированные регистры DR5, DR4.

Рис. 7.14. Форматы регистров отладки

Рассмотрим форматы регистров состояния и управления.

Выше отмечалось, что все события отладки, кроме INT3, вызывают прерывание с вектором 1. Следовательно, при возникновении особого случая отладки встает вопрос о причине прерывания. Именно для идентификации причин прерывания 1 предусмотрен регистр состояния отладки DR6,

Младшие четыре бита B0 — B3 относятся к четырем контрольным точкам и единичное состояние B i означает достижение контрольной точки, линейный адрес которой находится в регистре DR i.

Флаг BS (Step) устанавливается в 1, когда процессор начинает отрабатывать особый случай, вызванный ловушкой покомандной работы, т. е. при BS=1 причиной особого случая является состояние TF=1 регистра EFLAGS. Этот случай имеет высший приоритет среди всех случаев отладки, когда BS=1, могут быть установлены и другие биты состояния отладки.

(Страница211)

Флаг BT (Task) устанавливается в 1, когда особый случай отладки вызван переключением на задачу, в TSS которой установлен бит ловушки T=1.

Регистры отладки доступны (по записи или чтению) только в реальном режиме или в защищенном режиме по привилегированной (т. е. разрешенной к выполнению только на нулевом уровне) команде mov:

mov eax, dr6

mov drl, eax

В регистре DR7 предусмотрен флаг GD, который, будучи установленным, обеспечивает "сверхзащиту" всех обращений к регистрам отладки, вызывая при любой попытке обращения к этим регистрам прерывание 1. Для идентификации этой ситуации в DR6 предусмотрен бит BD. Он устанавливается в 1, если следующая команда будет считывать или записывать в один из восьми регистров отладки. Характерно, что при вызове процедуры обработчика с вектором 1 бит GD автоматически сбрасывается, что обеспечивает обработчику возможность доступа к регистрам отладки.

Процессор никогда не сбрасывает биты регистра состояния отладки DR6, поэтому обработчик особого случая должен сбрасывать их программно, иначе причины особых случаев отладки будут накапливаться.

Возможно, при возникновении особого случая отладки в состоянии 1 будут находиться несколько битов DR6 (что возможно при разрешении аппаратных контрольных точек) или, наоборот, в DR6 не окажется единичных битов. Последнее возможно, если возникло внешнее прерывание с вектором 1 или выполняется команда int1.

Регистр управления отладкой DR7 содержит для каждой из четырех контрольных точек следующие поля, определяющие ее характеристики: L i, G i, RW i и LEN i, а также два однобитовых поля LE и GE, определяющие свойства, общие для всех контрольных точек. Назначение этих полей приведены в табл. 7.2. Кроме того, в регистре DR7 бит 13 — GD — предназначен для включения режима защиты регистров отладки от любого обращения со стороны программ пользователя.

Таблица 7.2. Назначение полей регистра DR7

Поле Назначение
Li Локальное разрешение контрольной точки i € {0, 1, 2, 3}. Когда бит Li находится в 1, разрешена аппаратная контрольная точка, линейный адрес которой находится в DR1, но только в текущей задаче. При переключении задачи сбрасываются все биты Li

Таблица 7.2 (окончание)

Поле Назначение
G i Глобальное разрешение контрольной точки i. Функционирует аналогично биту L i, но на него не действует переключение задач. Сбросить бит Gj можно только программно
LE Локальная точность
GE Глобальная точность
RW i Определяет вид контрольной точки i:
  • 00 — контрольная точка по команде;
  • 01 — контрольная точка по данным с обращением по записи;
  • 10 — не определена и не используется;
  • 11 — контрольная точка по данным с обращением по считыванию или записи (но не выбор команды)
LEN i Для контрольной точки i по данным определяет длину данных:
  • 00 — однобайтовое поле (и все команды);
  • 01 — двухбайтовое поле (слово);
  • 10 — не определена и не используется;
  • 11 — четырехбайтовое поле (двойное слово)

Контрольная точка может быть локальной (в пределах одной задачи) или глобальной — в зависимости от значений битов L i и G i

Допускается одновременное значение L i= G i =1 или L i =G i =0. В первом случае это эквивалентно G i =1, а во втором — контрольная точка запрещена и соответствие линейного адреса из регистра DRi адресу команды не вызывает особого случая (но B i в регистре DR6 устанавливается в 1).

Аппаратные контрольные точки по командам устанавливаются путем загрузки в один из регистров DR i линейного адреса требуемой команды, установки в 00 соответствующих полей RW i и LEN i, установки в 1 бита L i и/или G i. После этого процессор начинает контролировать устройство предвыборки команд. Когда фиксируется равенство адреса команды и содержимого одного из "разрешенных" регистров DR i, хранящих контрольную точку по командам, формируется особый случай отладки, причем в DR6 устанавливается в 1 бит B i.

Адреса команд в регистрах DR0 — DR3 должны быть 32-разрядными линейными, а не логическими (селектор: смещение) или физическими. Линейный адрес не зависит от страничного преобразования, поэтому контрольная точка действует даже тогда, когда целевая команда участвует в свопинге и отображается на различные адреса физической памяти.

Если контрольная точка установлена как локальная, она сбрасывается при переключении задачи, причем значение DR7 не сохраняется в TSS, поэтому при восстановлении задачи контрольные точки не возобновляются. При необходимости следует предусмотреть программное возобновление контрольных точек. Для этого можно в расширении сегмента TSS той задачи, в которой определены локальные контрольные точки, записать значения DR0 — DR3 и DR7, а так же установить в TSS бит T=1. При переходе к такой задаче вызывается обработчик особого случая, который и восстановит значения регистров DR из сегмента TSS.

Аппаратные контрольные точки по командам являются нарушениями, т. е. процессор включает в стек адрес команды, вызвавшей нарушение, и обработчик особого случая возвращает управление на ту же команду. Поскольку аппаратные контрольные точки по команде проверяются до выполнения самой команды, процессор должен вновь сформировать особый случай. Необходимо обойти данную команду, для этого используется флаг возобновления RF в регистре EFLAGS. Процессор автоматически устанавливает RF=1 при возникновении любого нарушения, включая и аппаратные контрольные точки по командам. Аппаратные прерывания по входам INTR и NMI, а так же программные ловушки и аварии не воздействуют на флаг RF. Когда RF=1, процессор игнорирует особый случай аппаратной контрольной точки по командам, а после первой же команды, которая выполнена без особых случаев, процессор сбрасывает RF.

Аппаратные контрольные точки по данным устанавливаются с помощью тех же регистров отладки DR. Процессор формирует особый случай отладки как ловушку, когда происходит обращение к данным по установленным в DR адресам. Разрешается совместное применение контрольных точек по командам и по данным, причем возможно произвольное назначение типа контрольной точки (поле RW i в регистре DR7).

Процессор контролирует выравнивание данных, если их длина, указанная в поле LEN i, равна слову или двойному слову. В этом случае при сравнении текущего адреса сегмента данных с адресом контрольной точки игнорируются один или два младших бита регистра DR i.

Конвейерная архитектура старших моделей x86 обеспечивает одновременную обработку нескольких команд. Случается, что контрольная точка по данным фиксируется только после выполнения нескольких следующих команд. В регистре управления отладкой DR6 предусмотрены биты, задающие локальную LE и глобальную GE "точность" определения контрольной точки по данным. Будучи установленными в 1, эти биты замедляют внутренние операции процессора таким образом, что сообщают об обращении по контролируемому адресу данных точно в тот момент, когда происходит обращение к памяти.

Биты LE, GE действуют только на контрольные точки по данным, являются общими для всех таких точек, причем LE автоматически сбрасывается при переключении задачи, a GE может быть сброшен лишь программно.







Дата добавления: 2015-04-16; просмотров: 1054. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Studopedia.info - Студопедия - 2014-2026 год . (0.008 сек.) русская версия | украинская версия