- •Отладчик программ afd
- •Содержание
- •Введение
- •1. Рабочая среда отладчика.
- •1.1. Запуск отладчика и выход из среды.
- •1.2. Навигация по экрану.
- •1.3. Окно регистров.
- •1.4. Окна памяти.
- •1.5. Окно командной строки.
- •1.6. Окно ассемблера.
- •1.6.1.Просмотр программы.
- •1.6.2. Пошаговое исполнение.
- •1.6.3.Ассемблирование.
- •2. Система команд.
- •2.1. Загрузка файлов.
- •2.2. Управление программами.
- •2.3. Управление регистрами.
- •2.4. Управление памятью.
- •2.5. Управление портами.
- •2.6. Управление режимами.
- •2.7. Трассировка
- •2.8. Протоколирование.
- •2.9. Завершение работы.
- •3. Контрольные точки
- •3.1. Формат экрана контрольных точек
- •3.2. Окно контрольных точек
- •3.3. Управление окном
- •3.4. Вспомогательные функции
- •Приложение п1. Горячие клавиши Рабочий экран
- •Экран контрольных точек
- •Приложение п2 Основные сообщения отладчика
- •Invalid BreakPoint number.
- •Invalid operand type or size.
- •Invalid register.
- •Value missing.
- •Литература
1.4. Окна памяти.
Следующие два окна предназначены для отображения (и коррекции) содержимого областей памяти. Первое из этих окон (назовем его "Первое окно памяти") расположено в правой части экрана под колонками Stack и FLAGS окна регистров (в верхнем левом углу этого окна стоит индекс 1).
Левая колонка рассматриваемого окна содержит сведения об адресах отображаемой области данных. Адреса задаются в формате "сегмент:смещение". В качестве сегмента может выступать один из сегментных регистров процессора(CS, DS, ES или SS), либо дополнительный регистр отладчика HS или FS. Смещение всегда задается в числовой форме (НЕХ - формат).
Для отображения некоторой произвольной области памяти в окне 1 необходимо, сделав это окно активным, переместить курсор на колонку адресов и установить посредством клавиатуры нужное значение сегмента и смещения.
Пример.
Отобразить содержимое области памяти, находящейся в сегменте DS, начиная со смещения 100.
Для решения этой задачи необходимо отредактировать верхнюю строку колонки адресов окна 1 с таким расчетом, что бы строка приняла значение DS:0100.
Справа от колонки адресов индицируется содержимое искомой области данных. При этом одновременно на экране отображается 80 байтов(10 строк, по 8 байтов в каждой) в НЕХ - формате. Для навигации по области данных используются клавиши - стрелки, а также клавиши PgDn ("на страницу ниже") и PgUp ("на страницу выше").
Таким образом, пользователь может посредством курсора указать на любой байт памяти и затем отредактировать его, задав новое значение.
Аналогичными функциями обладает "Второе окно памяти". Это окно расположено внизу экрана над строкой-подсказкой (в верхнем левом углу окна стоит индекс 2). Заметим, что для отображения 80 байтов памяти в этом окне используется формат: 6 строк по 16 байтов в каждой. При этом окно поделено на две секции: в левой секции данные представлены в НЕХ - формате (аналогично окну 1), а в правой - те же самые данные представлены в ASCII - формате. Переключение между секциями реализуется посредством "горячих клавиш" F9 и F10(см. строку - подсказку).
Таким образом, по сравнению с первым второе окно памяти обладает большими возможностями, т.к. позволяет наблюдать и редактировать данные не только в НЕХ, но и в ASCII - формате.
1.5. Окно командной строки.
Окно командной строки находится в центре экрана и имеет идентификатор CMD. Это самое маленькое окно отладчика и предназначено для ввода текстовых команд - командных строк AFD.
Вот примеры некоторых командных строк:
AХ=0 - очистить регистр процессора АХ;
BL=FF - установить регистр BL в состояние FF;
CF=0 - очистить флаг CF;
L pr1 - загрузить в отладчик программу pr1.exe;
G - запустить загруженную программу.
Как видно из примеров, часть команд может быть реализована экранными средствами (это первые три команды), а часть - только средствами командной строки (это последние две команды). Более подробные сведения о командных строках отладчика содержатся в разделе 3 данного пособия. Здесь же мы рассмотрим одно полезное свойство отладчика, которое позволяет существенно упростить процесс ввода командных строк пользователем.
Дело в том, что работа в окне CMD связана с формированием последовательности командных строк. Причем часто в этой последовательности встречаются одни и те же команды. Для того чтобы избежать повторного ввода ранее введенных команд, нужно воспользоваться "горячей клавишей" F3 (см. строку-подсказку). При нажатии на эту клавишу отладчиком выполняются следующие действия:
1) становится активным окно CMD;
2) в окне отображается предыдущая командная строка.
Таким образом, многократно нажимая на F3, можно поместить в окно CMD все командные строки, введенные ранее. Для реализации любой команды данной последовательности достаточно нажать клавишу ENTER в тот момент, когда соответствующая командная строка будет находиться в окне CMD.