|
Часть 12
-112 -
12. ПРИЛОЖЕНИЯ
СОДЕРЖАНИЕ
Лист
12. Приложения...................................... 112
12.1. Краткое описание команд и режимов............... 113
12.1.1. Режимы.......................................... 113
12.1.2. Опции........................................... 114
12.1.3. Оконные команды................................. 115
12.1.4. Диалоговые команды.............................. 117
12.2. Сообщения об ошибках............................ 120
.
- 113 -
12.1. Краткий справочник команд и режимов
Это приложение содержит краткий справочник CodeView режи-
мов, опций, команд.
12.1.1. Режимы
Многие CodeView команды и опции используются для переключе-
ния режимов. Отладчик имеет 4 типа режимов: экранный режимы, ре-
жимы отладки, режимы отображения программы и режимы разделения
экрана. Все режимы каждого из этих типов даны в табл. 12.1.
Таблица 12.1. CodeView режимы
-----------------------------------------------------------------
Тип Режим Назначение Команда или опция
-----------------------------------------------------------------
Экранный Отладки Отладка программ Предопределенный
Вывода Просмотр экрана F4
вывода программы Переключение экра-
на (\)
Output команда из
View меню
Помощи Краткая справка F1
команд и опций Help команда из
View меню.
Отладки Оконный Просмотр отлажи- Предопределенный
ваемой программы для IBM
в оконном режиме /W опция
Последо- Просмотр отлажи- Предопределенный
вательный ваемой программы для не-IBM
в последователь- /T опция
ном режиме
Отобара- Исходно- Отображение строк Предопределенный
жения го текста исходного текста для C программ
програм- F3
мы S+
Sourse команда из
View меню
Ассемб- Отображение ассем- Предопределенный
лера блерных инструкций для программ без
- 114 -
символьных таблиц
F3
S-
Assembly команда
из View меню
Смешан- Отображение ассем- S&
ный блерных инструкций Mixed команда из
и строк исходного View меню
текста
Разделе- Флиппинг Разделение экранов Предопределенный
ния экра- с помощью видео- для IBM с CGA
на страниц /F опция
Свопинг Разделение экранов /S опция
с помощью буфера
-----------------------------------------------------------------
12.1.2. Опции
CodeView имеет следующие стартовые опции:
/B старт в черно-белом режиме при цветном
адаптере
/C<команды> выполнение стартовых <команд>
/F старт в флиппинге (разделение экранов
отладки и вывода через видеостраницы)
/M запрет mause
/T Старт в последовательном режиме
/S Старт в свопинге (разделение экранов
отладки и вывода с помощью буфера)
/W Старт в оконном режиме
/43 Старт в 43-строчном режиме при EGA адаптере
/2 Использование 2-х дисплеев отладки
/D Запрещение спецефических MS-DOS'овских
ф-ций (например, ctrl+break)
/I Включение специфических DOS ф-ций
- 115 -
12.1.3. Оконные команды
В таблице 12.2 собраны спец-ключ-команды и их mouse'овские
аналоги.
Таблица 12.2. Оконные команды
-----------------------------------------------------------------
Действие Спецключ Mouse
-----------------------------------------------------------------
Выйти в экран помощи F1 Help команда из
View меню
Открыть окно регистров F2 Register команда
из OPtions меню
Включить режим исходного F3 Sourse/Assembly
текста/ассемблера команда из View
меню
Переключиться в экран F4 Output команда
вывода из View меню
Выполнить F5 Щелкнуть любой
на Go!
Переключение из окна F6 Нельзя
диалога в окно отладки
Выполнить до F7 До места Щелкнуть правой
расположения в месте располо-
жения
Трассировать поцедуру F8 Щелкнуть левой
на Trace!
Установить точку останова F9 На месте Щелкнуть левой в
расположения месте расположения
Трассировать через поцедуру F10 Щелкнуть правой
на Trace!
Изменить флаги Нельзя Щелкнуть любой
на флаге
Переместить разделитель CTL+U Тащить вверх
вверх
Переместить разделитель CTL+D Тащить вниз
вниз
Листать окно на линию вверх Нельзя Щелкнуть левой
на стрелке вверх
Листать окно на страницу PGUP Щелкнуть правой
вверх на стрелке вверх
Листать окно в начал HOME Щелкнуть двумя
на стрелке вверх
- 116 -
Листать окно на линию вниз Нельзя Щелкнуть левой
на стрелке вниз
Листать окно на страницу PGDN Щелкнуть правой
вниз на стрелке вниз
Листать окно в конец END Щелкнуть двумя
на стрелке вниз
Перемещать курсор Стрелка вниз/вверх Нельзя
-----------------------------------------------------------------
Таблица 12.3 содержит список команд меню с комментариями
Таблица 12.3 Команды меню
-----------------------------------------------------------------
Меню Команда Действие
-----------------------------------------------------------------
File Load... Загрузка нового текстового файла.
Shell Старт нового DOS COMMAND.COM'а.
Quit Выход из отладчика.
-----------------------------------------------------------------
Search Find... Поиск первого регулярного выражения.
Next Поиск следующего регулярного выражения.
Pervious Поиск предыдущего регулярного выражения.
Label... Поиск функции или метки.
-----------------------------------------------------------------
View Help Открытие полномаштабного меню.
Source Переключение в режим исходного текста.
Assembly Переключение в режим ассемблера.
Output Переключение в экран вывода.
Evaluate... Вычисление выражения.
-----------------------------------------------------------------
Run Start Рестарт и выполнение текущей программы.
Restart Рестарт текущей программы.
Execute Выполнение в замедленном режиме.
Clear Удаление всех точек останова.
Breakpoints
-----------------------------------------------------------------
Watch Add Watch Установка выражений на просмотр.
Watchpoint...Установка контролируюших выражений.
Tracepoint...Установка памяти на контроль.
Delete Удаление сторожевых операторов.
Watch
-----------------------------------------------------------------
Options Flip/Swap Вкл\выкл экранного обмена.
Mix Source Вкл\выкл режима смешивания текста.
Symbols Вкл\выкл режима подстановки символьных имен.
Bytes Coded Вкл\выкл отображения байтов кода.
Registers Вкл\выкл окна регистров.
Case Sense Вкл\выкл чувствительности к малым буквам.
Calls <функции> Переход на последнюю выполненную строку
программы.
-----------------------------------------------------------------
- 117 -
12.1.4. Диалоговые команды
В этом разделе в алфавитном порядке описаны CodeView коман-
ды и их синтаксис. Многие из CodeView команд (таких как Дамп,
Ввести, Сторожить и Контролировать память) используют специфика-
торы типа, описывающие вид и размер вводимых/выводимых данных.
Вот эти спецификаторы:
Тип Назначение
Пусто Умалчиваемый тип, введеный пследней из
команд Дамп, Ввести, Сторожить и
Контролировать память.
A ASCII (8-битовые символы).
B Байтовый тип (8-битовое 16-ричное
значение).
I Целое 16-битовое десятичное значение;
эквивалент C int (знаковому).
U Беззнаковое целое 16-битовое десятичное
значение; эквивалент C unsigned.
W Слово (16-битовое 16-ричное значение).
D Двойное слово (32-битовое 16-ричное
значение).
S Короткое с плавающей (32-битовое);
Эквивалент C'ному float.
L Длинное с плавающей (64-битовое); Экви-
валент C'ному double.
T 10-байтовое с плавающей (80-битовое).
Диалоговые команды и их синтаксис даны в таблице 12.4.
Таблица 12.4. Диалоговые команды
-----------------------------------------------------------------
Имя Синтаксис Описание
-----------------------------------------------------------------
Ассемблировать A[<адрес>] Вводить ассемблерные команды,
начиная с <адреса>.
Стирание точек BC[<список>] Стереть точки останова из
останова <списка>.
Подавление точек BD[<список>] Подавить точки останова из
останова <списка>.
Восстановление BE[<список>] Восстановить подавленные
точек останова точки останова из <списка>.
Список точек BL Список точек останова.
останова
- 118 -
Установка BP[<адрес>[<счетчик>]["<команды>"]]
точек останова Установить точку останова
по <адресу>, со счетчиком
проходов <счетчик> и списком
выполняемых "<команд>".
Комментарий * Вывести комментарий
Задержка : Замедлить выполнение команд.
Значение выражения ?<выражение>[,<формат> Вывести значение <выражения>
в <формате>.
Дамп D[<тип>][<адрес>] Дамп <отрезка> памяти в <тип>
формате.
Ввести E[<тип>]<адрес>[<список>] Ввод <списка> значений в
<тип> формате.
Контроль имен X?[<модуль>!][<функция>.] <имя>][*]
Выполнять E Выполнение программы в за-
медленном режиме.
Выполнить G[<адрес>] Выполнение программы до спе-
цифицированного <адреса>
или до конца.
Подсказка H Вывод краткой командно-син-
таксической справки.
Пауза " Прервать выполнение команд
до нажатия любого ключа.
Программный шаг P[<счетчик>] Выполнить <счетчик> строк
исходного текста или ассем-
блерных инструкций.
Выход Q Выйти в MS-DOS.
Радикс N[<основание>] Установить систему исчисле-
ния (16-ричную, 10-тичную..)
Переназначение [T]>[>]<устройство> Назначить ввод (или вывод)
<<устройство> на <устройство>.
=<устройство>Перерисовать @ Восстановить экран отладки.
Регистр R[<регистр>[[=]<выражение>]] Высветить или изменить ре-
гистры или флаги ЦП.
Рестарт L[<аргумент>] Рестарт программы с <аргу-
ментами.
Экран вывода \ Временный выход в экран
вывода.
Поиск /[<регулярное выражение>] Поиск строки исходного
текста.
Установка режима S[+:-:&] Установка режима отображе-
ния программы.
Загрузка командного ![<команда>] Временный выход и выпол-
процессора нение MS-DOS'овских команд
или транзитных программ.
Текущее расположение . Вывод текущей строки исход-
ного текста.
Стек вызовов K Вывод текущих активных про-
цедур и их аргументов.
Установка табуляции #<размер> Установка размера табуляции.
Трассировать T[<счетчик>] Выполнить <счетчик> строк
исходного текста или ассем-
блерных инструкций, провали-
ваясь вподпрограммы.
- 119 -
Контролировать TP? <выражение>[,<формат>] Прерывание выполнения по из-
изменение TP[<тип>] [<отрезок>] менению значения <выражения>
или <отрезка>.
Дезассемблировать U [<отрезок>] Дезассемблировать <отрезок>
памяти.
Просмотреть V [<адрес>] Просмотр строк исходного тек-
ста.
Сторожить W? <выражение>[,<формат>] Высвечивать значение <выраже-
W[<тип>] [<отрезок>] ния> или <отрезка> памяти.
Удалить стражзаписи Y [<номер>] Удаление сторожевых записей.
Список стражзаписей W Список сторожевых записей.
Контроль выражений WP? <выражение>[,<формат>]Прерывание выполнения по дос-
тижению <выражением> значения
true.
8087 7 Высветить регистры 8087
процессора.
------------------------------------------------------------------
Некоторые из команд, такие как ?, W?, WP?, TP?, позволяют
вам специфицировать формат, в котором они будут высвечиваться.
<Формат> - это printf спецификация типа, и их перечень дан в
табл. 12.5.
Таблица 12.5. Спецификации типа
----------------------------------------------------------
Символ Формат вывода Примерное Пример
выражение вывода
----------------------------------------------------------
d Десятичный знаковый ?40000,d -25536
целый.
i Десятичный знаковый ?40000,i -25536
целый.
u Десятичный беззнаковый ?40000,u 40000
целый.
o Восьмеричный беззнаковый ?40000,o 116100
целый.
x|X Шестнадцатеричный целый. ?40000,x 9c40
(1)
f Знаковое значение float ?(float)3/2,f 1.500000
в десятичном формате с 6
цифрами после запятой.
e|E Знаковое значение float ?(float)3/2,e 1.500000e+000
(2) в десятичном формате с 6
цифрами после запятой и
порядком.
g|G Знаковое значение float ?(float)3/2,g 1.5
(2) в компактном виде.
- 120 -
c Знаковое символьное. ?65,c A
s Символы печатаются до ?"строка",s строка
первого нулевого символа.
----------------------------------------------------------
Примечания.
1. Если x маленькое, то шестнадцатеричные цифры A-F высве-
чиваются маленькими буквами, если нет, то нет.
2. Если e или g маленькие, то указатель порядка высвечива-
ется маленькой буквой, если нет, то нет.
Если спецификатор формата не указан, значения типа float и
double высвечиваются в g формате; если тип выражения знаковый, то
в формате d, а если беззнаковый, то в формате u. Указатели высве-
чиваются в формате u.
Префикс h должен использоваться с целыми спецификаторами
(d,o,u,x,X) для спецификации short int. Префикс l должен исполь-
зоваться для спецификации long int.
Примечание.
Спецификаторы n и p и префиксы F и H не поддерживаются
CodeView.
12.2. Сообщения об ошибках
CodeView выдает сообщения об ошибках в том случае, когда он
не может выполнить введенную команду. Все ошибки (за исключением
стартовых) снимают выполнение ошибочной команды, но не снимают
сам отладчик. Ниже приведен список всех ошибок и комментариев к
ним.
Bad address
Неправильно специфицирован адрес. Например, вы ввели адрес
в 16-ричном виде, а текущий радикс - 10.
Bad breakpoint command
Введен неправильный номер точки останова в одной из команд
Стереть, Подавить или Восстановить точку останова. Номера точек
останова находятся в интервале от 0 до 19.
Bad flag
В диалоговой команде регистр (R) неправильно специфицирова-
но имя какого-либо флага. Команда RF выводит все мнемонические
имена флагов.
Bad format string
Неправильно специфицирован спецификатор типа. Спецификатор
типа - это printf формат, синтаксис его употребления: <выраже-
ние>,
|