ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 11 -101 - 11. КОМАНДЫ СИСТЕМНОГО КОНТРОЛЯ СОДЕРЖАНИЕ Лист 11. Команды системного контроля................ 101 11.1. Введение....................................102 11.2. Команда "Подсказка" (H).................... 102 11.3. Команда "Возврат в MS-DOS" (Q)............. 103 11.4. Команда "Радикс" (назначение системы исчи- сления) (N)................................ 103 11.5. Команда "Восстановить экран" (@)........... 104 11.6. Команда "Переключить экран" (\)............ 105 11.7. Команда "Поиск" (/)........................ 105 11.8. Команда "Временный выход в MS-DOS" (!)..... 107 11.9. Команда "Установить размер табуляции" (#).. 108 11.10. Команды переназначения..................... 109 11.10.1. Команда "Переназначить ввод" (<)........... 109 11.10.2. Команда "Переназначить вывод" (T>)......... 109 11.10.3. Команда "Переназначить ввод/ вывод" (=).... 110 11.10.4. Команды пакетной обработки................. 110 11.10.4.1. Команда "Комментарий" (*).................. 111 11.10.4.2. Команда "Замедлить" (:).................... 111 11.10.4.3. Команда "Пауза" (")........................ 111 . - 102 - 11.1. Введение В этой главе описаны команды, управлюющие состоянием CodeView. Вот список этих команд: Команда Действие. Подсказка(H) Демонстрация справки CodeView-команд. Выход (Q) Возврат в MS-DOS. Радикс(N) Изменение текущей системы исчисления. Перерисовать(@) Перерисовать экран. Переключение Переключение экрана вывода. экрана(\) Поиск (/) Поиск регулярных выражений. Подгрузить коман- Старт нового MS-DOS'овского команд- дный процессор(!) ного процессора. Установка та- Установка размера табуляции. буляции(#) Команды переназ- Контроль переназначения CodeView начения и пакет- ввода и вывода ной обработки. Команды системного контроля описаны в следующих разделах. 11.2. Команда "Подсказка" (H) Отладчик имеет две help-команды: одна из которых -- вход в полномасштабную help-систему, доступную в оконном режиме, а вто- рая -- выдача краткой справки синтаксиса диалоговых команд, ис- пользуемых как в диалоговом, так и в последовательном режиме. Mouse. Для входа в полномасштабную help-систему mouse'ом "укажите" View-заголовок из строки меню и "вытащите" отуда Help команду. Работа с help-системой описана в разделе 3.4. Вторая версия ко- манды не может быть выполнена mouse'ом. Клавиатура. Для входа в полномасштабную help-систему спецключами, набе- рите F2 ключ. Работа с help-системой описана в разделе 3.4. Вто- рая версия команды выполнима тем же ключем F2, но только в после- довательном режиме. - 103 - Диалоговая. Полная help-система не может быть инициализирована диалого- вой командой. Для просмотра краткой справки синтаксиса диалоговых команд выполните диалоговую команду в следующем синтаксисе: H Результатом выполнения этой команды будет справка диалого- вых команд, являющаяся единственно доступной в последовательном режиме. Она также полезна и в оконном режиме для получения быст- рой справки диалоговых команд. 11.3. Команда "Возврат в MS-DOS" (Q) Команда выхода предназначена для снятия CodeView и возврата в MS-DOS. Mouse. Для выполнения команды выхода mouse'ом ,"укажите" File-за- головок из строки меню и "вытащите" оттуда Quit команду. Клавиатура. Для выполнения команды выхода спецключами, наберите ALT+F и ALT+Q ключи для вызова Quit команды из File-меню. Диалоговая. Для выхода из CodeView, выполните диалоговую команду в сле- дующем синтаксисе: Q 11.4. Команда "Радикс" (назначение системы исчисления) (N) Команда радикс изменяет текущую систему исчисления, в кото- рой вводятся аргументы и отображаются значения выражений. При старте по умолчанию CodeView работает в 10-тичном радиксе; коман- дой радикс можно установить 16-ричную или 8-ричную систему исчис- ления (но не двоичную или какую-либо другую). Следующие 7 соглашений выполняются независимо от текущего значения радикса: 1) при изменении радикса новый радикс всегда вводится в 10-тичном формате; 2) явная спецификация типа константы (см. главу 4"Диалоговые команды") игнорирует текущий радикс; 3) адреса, выводимые командами ассемблер, дамп, ввести, де- зассемблировать, всегда отображаются в 16-ричном формате; 4) в режиме ассемблера операнды ассемблерных команд демонст- рируются в 16-ричном формате; 5) данные команд контроля и просмотра (дамп, Watch Memory, Tracepoint Memory) всегда отображаются в 16-ричном виде (для бай- тового и словных форматов) и 10-тичном - для целых и плавающих; 6) в интерактивном режиме данные команды "ввести" вводятся в 16-ричном виде (для байтового и словных форматов) и 10-тичном для целых и плавающих. Если водимые значения указываются в виде списка выражений, то их значения вычисляются в текущем радиксе; 7) значения регистров всегда выводятся в 16-ричном виде. - 104 - Mouse. Нельзя изменить текущий радикс mouse'ом. Клавиатура. Нельзя изменить текущий радикс спецключами. Диалоговая. Для изменения текущего радикса введите диалоговую команду в следующем синтаксисе: N[<номер радикса>], где <номер радикса> должен быть 8 (для 8-ричного), 10 (для 10-тичного) и 16 (для 16-ричного). По умолчанию при старте отлад- чика устанавливается 10-тичный радикс. При вводе команды без ар- гумента отладчик выводит текущий радикс. Примеры: > * Пример 1 >N8 ; * Назначение 8-ричного радикса >?prime 0153 >N10 ; * Назначение 10-тичного радикса >?prime 107 >N16 ; * Назначение 16-ричного радикса >?prime 0x6B > * Пример 2 >N8 ; * Назначение 8-ричного радикса >?34,i 28 >N10 ; * Назначение 10-тичного радикса >?28,i 28 >N16 ; * Назначение 16-ричного радикса >?1C,i 28 Первый пример -- пример изменения радикса, второй -- отмены дейсвия текущего радикса указанием i спецификации формата. 11.5. Команда "Восстановить экран" (@) Команда перерисовать применяется только в оконном режиме для перерисовки экрана отладки. Эта команда редко необходима, но она может понадобиться, если вывод программы запортил CodeView экран. Mouse. Эту команду нельзя ввести mouse'ом. Клавиатура. Эту команду нельзя ввести спецключами. Диалоговая. Для выполнения команды перерисовать введите диалоговую ко- - 105 - манду в следующем синтаксисе: @ 11.6. Команда "Переключить экран" (\) Команда переключения экрана предназначена для временного пе- рехода из экрана отладки в экран вывода программы. Для разделения экранов отладки и вывода CodeView пользуется свапингом или флипингом (выбор флипинга/свапинга описан в разделе 2.3). Mouse. Для выполнения команды переключения экрана mouse'ом "укажи- те" View-заголовок из строки меню и "вытащите" оттуда Output ко- манду. Для возврата в экран отладки нажмите любой ключ или кнопку mouse'а. Клавиатура. Для выполнения команды переключения экрана спецключами, на- берите ALT+V и ALT+O ключи для вызова Output команды из View-меню. Для возврата в экран отладки нажмите любой ключ или кнопку mouse'а. Диалоговая. Для переключения в экран вывода программы выполните диалого- вую команду в следующем синтаксисе: \ Для возврата в экран отладки нажмите любой ключ или кнопку mouse'а. 11.7. Команда "Поиск" (/) Команда поиска предназначена для поиска регулярных выражений в файле исходного текста. Искомое выражение вводится как непосред- ственный аргумент диалоговой команды или в диалоговом окошке. Регулярные выражения -- это метод спецификации переменных текстовых паттернов (шаблонов). Этот метод заимствован из Unix'а и Xenix'а и похож на MS-DOS'овский метод спецификации групповых имен. Регулярные выражения описаны в приложении 12.2. Для работы с командой поиска необходимо научиться применять регулярные выражения. Так как текстовая строка является простым регулярным выражением, ее можно вводить как выражение поиска. Нап- ример, введите count для поиска слова "count" в тексте. Следующие символы используются как спецсимволы в регулярных выражениях:обратная наклонная (\), звездочка (*), левая квадратная скобка ([), точка (.), знак доллара ($) и карет символ (^). Если они содержатся в строке поиска, то перед ними должна стоять обрат- ная наклонная черта (\). Например, \n будет выглядеть как \\n, а buffer[count] как buffer\[count].Точка и карет символы также должны вводиться с \ сим- волом впереди. - 106 - Примечание: При поиске следующего регулярного выражения отладчик, натк- нувшись на конец файла, автоматически переходит на его начало. Если строка, удовлетворяющая специфицированному шаблону, единст- венна, выполнение команды даст неожиданный результат: ту же самую строку. Но отладчик при этом просмотрел весь файл. Mouse. Для нахождения регулярного выражения mouse'ом "укажите" Search-заголовок из строки меню и "вытащите" оттуда Find... коман- ду. Открывшееся окошко диалога запросит регулярное выражение для поиска. Введите его и нажмите Enter или любую кнопку mouse'а. CodeView будет искать его с текущей позиции курсора и до конца файла. Если выражение отсутствует, отладчик выдаст сообщение об ошибке. По нахождению выражения отладчик, если это необходимо, ав- томатически переключится в режим исходного текста. По нахождению регулярного выражения вы можете поискать пре- дыдущее или следующее, для чего "укажите" Search меню и вытащите из него Next или Pervios команду. Также имеется возможность находить метки выполняемого кода (например, имена функций или ассемблерные метки). Для этого "ука- жите" Search-заголовок из строки меню и "вытащите" оттуда Label... команду. Открывшееся окошко диалога запросит регулярное выражение, специфицирующее метку. Введите его и нажмите Enter или любую кнопку mouse'а. Эта команда отличается от предыдущих тем, что она производит поиск в исполняемом коде, а не в файле исход- ного текста. По нахождению метки CodeView, если это необходимо, автоматически переключится в режим ассемблера. Эта команда бывает полезна при отладке асемблерных подпрограмм. Клавиатура. Для нахождения регулярного выражения спецключами, наберите ALT+S и ALT+F ключи для вызова Find... команды из Search-меню. От- крывшееся окошко диалога запросит регулярное выражение для поиска. Введите его и нажмите Enter или любую кнопку mouse'а. CodeView бу- дет искать его с текущей позиции курсора и до конца файла. Если выражение отсутствует, отладчик выдаст сообщение об ошибке. По на- хождению выражения отладчик, если это необходимо, автоматически переключится в режим исходного текста. По нахождению регулярного выражения вы можете поискать пре- дыдущее или следующее, для чего наберите ALT+S и ALT+N (или ALT+P) ключи для вызова Next или Pervios команды из Search-меню. Также имеется возможность находить метки выполняемого кода (например, имена функций или ассемблерные метки). Для этого набе- рите ALT+S и ALT+L ключи для вызова Label... команды из Search-меню. Открывшееся окошко диалога запросит регулярное выра- жение, специфицирующее метку. Введите его и нажмите Enter или лю- бую кнопку mouse'а. Эта команда отличается от предыдущих тем, что она производит поиск в исполняемом коде, а не в файле исходного текста. По нахождению метки CodeView, если это необходимо, авто- матически переключится в режим ассемблера. Эта команда бывает по- лезна при отладке асемблерных подпрограмм. - 107 - Диалоговая. Для нахождения регулярного выражения выполните диалоговую команду в следующем синтаксисе: /[<регулярное выражение>] Если регулярное выражение дано, CodeView ищет в файле ис- ходнлго текста первую строку, удовлетворяющую этому выражению, если нет, то следующую строку, удовлетворяющую последнему шабло- ну, введеному последней командой поиска. В оконном режиме CodeView начинает поиск с текущей позиции, в последовательном -- с последней выведенной строки исходного тек- ста. Диалоговой версией команды нельзя специфицировать поиск мет- ки, но употребление View команды с меткой в качестве аргумента да- ет необходимый эффект. 11.8. Команда "Временный выход в MS-DOS" (!) Команда подгрузить командный процессор предназначена для временного выхода в MS-DOS для выполнения MS-DOS'овских команд или программ. Команда сохраняет текущее состояние отлаживаемой прог- раммы. Эта команда сохраняет текущий процесс в памяти и подгружает второй COMMAND.COM, который она находит по COMSPEC set'у. Выполнение этой команды требует более 200K свободной памяти под отладчик, COMMAND.COM, символьные таблицы и отлаживаемую программу. При отсутствии ее CodeView выдаст сообщение об ошибке. Перед тем, как возвратиться в отладчик командой MS-DOS'а exit, восстановите тот директорий, в котором вы работали до того (это необходимо для того, чтобы отладчик мог найти исходный текст программы). Примечание: Перед выполнением команды подгрузки командного процессора, отлаживаемая программа должна отдать ту память, которая ей не нуж- на. Программы, приготовленные MicroSoft C Compiler'ом, делают это автоматически при выполнении стартовой инициализирующей части. Например, выполнение команды G main позволит вам подгружать коман- дный процессор. Нельзя выполнить команду подгрузки командного процессора при отладке ассемблерных программ, если они явно не обращаются к MS-DOS-функции 0x4A (установить блок). В этом случае линкуйте ас- семблерные программы с опцией /CPARMAXALLOC. Если же программа не отдала память, то при попытке подгрузить командный процессор CodeView выдаст сообщение: Not enough memory Mouse. Для выполнения команды подгрузки второго командного процес- сора mouse'ом "укажите" File-заголовок из строки меню и "вытащите" оттуда Shell команду. Для возврата в отладчик выполните MS-DOS'ов- - 108 - скую команду exit. Клавиатура. Для выполнения команды подгрузки второго командного процес- сора спецключами, наберите ALT+F и ALT+S ключи для вызова Shell команды из File-меню. Для возврата в отладчик выполните MS-DOS'ов- скую команду exit. Диалоговая. Для подгрузки второго командного процессора выполните диало- говую команду в следующем синтаксисе: ![<команды>] Если вы хотите выйти в MS-DOS и выполнить несколько команд или программ, введите команду без аргументов. CodeView при этом подгрузит второй командный процессор. Для возврата в отладчик вы- полните MS-DOS'овскую команду exit. Для выполнения программ или команд MS-DOS'а внутри отладчи- ка, указывайте их в качестве аргументов. По окончании выполнения команды или программы внизу экрана появится сообщение Press any key to continue... . Нажмите любой кюч для возврата в экран отлад- ки. Примеры: >! ; * Пример 1 >!DIR A:*.C ; * Пример 2 >!CHKDSK A: ; * Пример 3 В примере 1 CodeView сохранит текущий процесс в памяти и подгрузит второй командный процессор; во втором примере CodeView выполнит команду MS-DOS'а DIR с аргументом A:*.C, в третьем -- транзитную MS-DOS'овскую команду CHKDSK. 11.9. Команда "Установить размер табуляции" (#) Команда установки табуляции устанавливает размер табуляции, равный по умолчанию 8. Эта команда улучшает отображение программы, имеющей много уровней вложенности (при условии, конечно, что вло- женность выделена символом табуляции). Mouse. Эту команду нельзя ввести mouse'ом. Клавиатура. Эту команду нельзя ввести спецключами. Диалоговая. Для изменения размера табуляции введите диалоговую команду в следующем синтаксисе: #<размер>, где <размер> -- новый размер табуляции. В оконном режиме выполнение команды вызовет перерисовку окна отладки, в последова- тельном -- изменит вид последующего вывода. Пример: - 109 - >. 32: for(j=q;j>=0;j--) >#4 >. 32: for(j=q;j>=0;j--) > 11.10. Команды переназначения CodeView оснащен командами, позволяющими переназначать ввод/вывод на/с различных устройств и файлов. Кроме того, имеется набор команд, позволяющих организовать пакетную обработку при вво- де из файла. Эти команды описаны в разделах 11.9.1-11.9.4.3. Mouse. Эти команды нельзя ввести mouse'ом. Клавиатура. Эти команды нельзя ввести спецключами. Диалоговая. Эти команды описаны в разделах 11.9.1-11.9.4.3. 11.10.1. Команда "Переназначить ввод" (<) Синтаксис '<'<имя устройства> После выполнения этой команды CodeView будет считывать все команды с <устройства> (файла, другого терминала) так, как будто они введены с консоли. Примеры: > |