Шаг 41.
Отладчик Turbo Debugger for DOS.
Окно CPU. Область дампа
На этом шаге мы рассмотрим назначение и возможности области дампа.
В этой области выводится в шестнадцатеричном виде содержимое области памяти. В левой части каждой строки
показан адрес (в виде "сегмент: смещение" или 32-разрядного адреса). Порядок регистров в области
Dump имеет вид: DS, ES, SS, CS. Справа от адреса выводятся значения элементов данных в
выбранном формате.
Локальное меню области Dump (рисунок 1) содержит команды для перемещения по области, модификации
содержимого, перемещению по указателям, задания формата вывода и работы с блоками памяти.
Рис.1. Локальное меню области Dump
Рассмотрим пункты этого локального меню.
- Команда Goto.... Выводит диалоговое окно Enter Address to Position To, где вы можете
ввести выражение, при вычислении которого получается адрес памяти, доступный программе.
- Команда Search.... Ищет строку символов или список байт, начиная с адреса, указанного курсором.
- Команда Next. Ищет следующий экземпляр элемента, заданного в команде поиска.
- Команда Change.... Позволяет модифицировать байты по текущему месту расположения
курсора. При выводе в формате ASCII или шестнадцатеричном виде запрашивается список байт, в противном
случае - элемент текущего формата вывода.
- Команда Follow. Открывает меню с командами, позволяющими проверить данные по адресам указателей near и far.
Рис.2. Пункты меню команды Follow
Кратко опишем пункты этого меню.
- Команда Near Code этого меню интерпретирует слово под курсором в области данных, как смещение в текущем сегменте кода (как это задается
регистром CS). Область кода становится текущей областью и позиционируется на данный адрес.
- Команда Far Code интерпретирует двойное слово под курсором в области данных, как адрес дальнего типа
(сегмент и смещение). Область кода становится текущей и позиционируется на данный адрес.
- Команда Offset to Data позволяет вам следовать по цепочке указателей размером в слово (ближнего типа,
где используется только смещение). Область данных устанавливается в соответствии со смещением, заданным словом
в памяти по текущей позиции курсора.
- Команда Segment:Offset to Data позволяет следовать по цепочке указателей дальнего типа размером в двойное
слово (где используется сегмент и смещение). Область данных устанавливается в соответствии со смещением,
заданным двойным словом в памяти по текущей позиции курсора.
- Команда Base Segment:0 to Data интерпретирует слово под курсором, как адрес сегмента, и позиционирует
область данных на начало сегмента.
- Команда Previous. Восстанавливает адрес области данных в адрес, который был до
последней команды, явно изменившей значение текущего адреса. Использование клавиш стрелок и клавиш перемещения
курсора не приводит к запоминанию позиции. Отладчик поддерживает стек из пяти последних адресов, поэтому вы
можете вернуться назад после многократного (< 5) использования команд локального меню Follow, или
команды Goto.
- Команда Display As. Позволяет выбирать формат вывода в области данных. Вы можете
выбирать один из форматов данных, использующихся в языке С, Pascal или ассемблер. Эти
форматы можно выбрать из меню (рисунок 3).
Рис.3. Пункты меню команды Display As
- Команда Byte устанавливает область данных в режим вывода шестнадцатиричных байтовых данных.
- Word устанавливает область данных в режим вывода шестнадцатиричных слов.
- Long задает режим вывода длинных шестнадцатиричных целых чисел.
- Comp устанавливает режим вывода 8-байтовых целых чисел. Выводится десятичное значение числа.
- Float устанавливает режим вывода 6-байтовых чисел с плавающей точкой. Выводится значение числа с плавающей точкой в научном представлении.
- Double выводит 8-байтовые числа с плавающей точкой. Выводится значение числа в научном представлении.
- Extended устанавливает режим вывода 10-байтовых чисел с плавающей точкой в научном представлении.
- Команда Block. Позволяет работать с блоками памяти. Вы можете перемещать, очищать,
присваивать значения блокам памяти, а также записывать и считывать блоки памяти из файлов на диске. По данной
команде на экран выводится всплывающее меню.
Рис.4. Пункты меню команды Block
- Команда Clear этого меню устанавливает непрерывный блок в памяти в значение 0.
Адрес блока и число байт, которые требуется очистить, запрашиваются в выводимой подсказке.
- Move копирует блок памяти из одного адреса в другой. Адреса исходного и целевого блока, а также
число копируемых байт, будут запрашиваться в подсказке.
- Set присваивает непрерывному блоку в памяти конкретное байтовое значение. Адрес блока, число байт,
которым требуется присвоить значение, а также само значение запрашиваются в подсказке.
- Read считывает все содержимое или часть файла в блок памяти. Вам выводится подсказка для ввода
имени считываемого файла, затем адреса, куда требуется считать информацию, и числа считываемых байт.
- Write записывает блок памяти в файл. Выводится подсказка для ввода имени файла, куда требуется
записать данные, затем блока памяти, который нужно записать, и число считываемых байт.
На следующем шаге мы рассмотрим область стека.
Предыдущий шаг
Содержание
Следующий шаг