December 16 2017 12:41:09
Навигация
Авторизация
Логин

Пароль



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

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

Программный останов. Этот способ отладки реализуется с помощью однобайтной команды INT3, которая вводится программистом в критические точки программы, где необходимо выполнить контроль текущего состояния. Команда INT3 устанавливает безусловную программную точку останова, при выполнении которой процессор реализует исключение #ВР. Команда INT3 выполняется при любых значениях уровня привилегий программы CPL и содержимого поля IOPL. Исключение #ВР всегда вызывается через таблицу IDТ. При работе процессора в режиме виртуального 8086 на выполнение команды INT3 не оказывает влияния значение битов в карте перенаправления прерываний (при установленном значении бита VME = 1 в регистре CR4). При вызове подпрограммы обслуживания через шлюз уровень приоритета этого шлюза gDPL должен быть больше или равен CPL.

Пошаговый режим. Пошаговый режим имеет место, когда установлено значение признака TF=1 в регистре EFLAGS. В этом случае процессор после выполнения каждой команды (ловушка) реализует исключение типа #DB, вызывая соответствующую подпрограмму обслуживания. Перед вызовом этой подпрограммы процессор устанавливает значение признака TF = 0, чтобы обеспечить выполнение обработки без пошаговых остановов. Команда IRET, завершающая подпрограмму обработки, восстанавливает из стека содержимое регистра EFLAGS (где значение TF = 1), передавая управление следующей команде программы, после которой снова реализуется прерывание #DB.

Останов с помощью регистров отладки DR0-DR7. Регистры отладки имеют следующее назначение:

DR3-0 - содержат линейные адреса четырех контрольных точек останова; DR6 - регистр состояния, указывающий причину останова в контрольной точке; DR7 - регистр управления, задающий условия останова в контрольных точках.

Доступ к регистрам отладки разрешен только программам с уровнем привилегий CPL = 0. Попытка обратиться к этим регистрам на другом уровне привилегий (CPL > 0) приводит к исключению #GP.

Регистры DR4, DR5 в выпускаемых моделях процессоров не используются. Если в регистре управления CR4 установлено значение бита DE = 1 (расширение отладки), то обращение к регистрам DR4, DR5 приводит к исключению #UD. Если бит DE = 0, то при вызове DR4, DR5 производится обращение к регистрам DR6, DR7.

Формат содержимого регистров управления DR7 и состояния DR6 отладки показан на рис. 2.63.

Регистр управления отладкой DR7 определяет условия останова для каждой из четырех контрольных точек, линейные адреса которых находятся в регистрах DR0-DR3. Отдельные биты и поля в регистре DR7 имеют следующее назначение:

LENi-размер точки останова. Двухбитные поля LEN/указывают, какие биты линейного адреса участвуют в определении адреса срабатывания /-й точки останова, определяя, таким образом, размер области памяти, в пределах которой выполняется останов.

При реализации останова по обращению к данным поле LEN/ может принимать следующие значения:

•  00 -1 байт (используются биты А31-0 линейного адреса в регистре DRi);

•  01 - 2 байта (используются биты А31-1 линейного адреса);

•   10 - не определено;

•   11-4 байта (используются биты А31-2 линейного адреса).

Если соответствующее поле R/W/ в регистре DR7 равно 00 (реализация останова по вы­борке команды), то поле LENi должно быть равно 00.

img035

R/Wi-mun доступа. Двухбитные поля R/W/ определяют тип обращения к памяти, при котором происходит срабатывание /-й точки останова. Поле R/Wi может принимать следующие значения:

•   00 - выборка команды;

•   01 - запись данных;

•   10 -чтение или запись порта ввода/вывода (при значении бита DE = 1 в регистре управления CR4, при DE = 0 значение R/Wi=10 не определено);

•   11 - запись или чтение данных.

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

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

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

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