ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 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 будет считывать все
         команды с <устройства> (файла, другого терминала) так,  как  будто
         они введены с консоли.
               Примеры:
                > или
         точкой с запятой (;). CodeView будет выполнять его  от  начала  до
         конца; для восстановления приема с консоли, последней командой фай-
         ла должна быть )
                
               Синтаксис
                [T]>[>]<имя устройства>
               После выполнения этой команды весь CodeView вывод будет нап-
         равляться на <устройство>.
               Опция   T  указывает,  что  вывод  должен  дублироваться  на

                                      - 110 -
         
         
         CodeView экран (однако, если <устройство> -- другой  терминал,  то
         вывод копироваться не будет).
               Повторный  символ указывает на то, что символы будут дописы-
         ваться в конец файла.
               Примеры:
                >>COM1               ; * Пример 1
                >T>OUTFILE.TXT       ; * Пример 2
                .
                .
                .
                >>CON
                .
                .
                .
                >T>>OUTFILE.TXT      ; * Пример 3
                
               
           
               Пример 1 -- команда переназначения вывода на устройство COM1
         (вероятно, удаленный терминал). Пример 2 -- команда переназначения
         вывода на вывод в файл OUTFILE.TXT.Опция T  указывает,  что  вывод
         должен дублироваться на CodeView экран. >CON -- команда восстанов-
         ления вывода на консоль. Пример 3 -- команда переназначения вывода
         на  вывод  в файл OUTFILE.TXT. Опция T указывает, что вывод должен
         дублироваться на CodeView экран, вторая '>' -- то, что символы бу-
         дут дописываться в конец файла.

                
               11.10.3. Команда "Переназначить ввод/вывод" (=)
                
               Синтаксис
                =<имя устройства>
                
               После выполнения этой команды CodeView ввод/вывод будет осу-
         ществляться с/на <устройство>. На практике <устройство> --  вторая
         консоль (и, конечно не файл).
               Переназначение  устройства  работает  прекрасно в последова-
         тельном режиме (специфицированном опцией /T), но в оконном  режиме
         в  нем нет надобности: эта команда переназначает только ввод/вывод
         диалогового окна и экрана  вывода,  являющегося  небольшой  частью
         оконного интерфейса.
               Пример:
                >>COM1
               Пример  -- переназначение вывода/вывода на/с устройство COM1
         (вероятно, удаленный терминал).
                
                
               11.10.4. Команды пакетной обработки
                
               Команды пакетной обработки используются совместно с переназ-
         начением ввода на ввод с файла. Вот список этих команд:
                
                     Команда                    Действие
                

                                      - 111 -
         
         
                Комментарий(*)             Вывод комментария
                
                Задержка(:)                Замедление процесса выпол-
                                           нения команд из файла пере-
                                           назначения
                
                Пауза(")                   Остановка в выполнении ко-
                                           манд  из  файла до нажатия
                                           ключа
               
               
                
               11.10.4.1. Команда "Комментарий" (*)
                
               Синтаксис
                *<комментарий>
               
               Команда комментария -- звездочка(*), сопровождаемая текстом.
         Во время ее выполнения CodeView выводит текст комментария на экран
         (или другое устройство вывода). Эта команда полезна при переназна-
         чении ввода/вывода, когда необходимо прокомментировать  выполнение
         списка команд.
               Пример:
                >T>>OUTFILE.TXT
                >* Дамп первых 20 байт экранного буфера.
                >D 0xB800:0 L 20
                ???????????
           
               Пример  копирования  первых  20 байт экранного буфера в файл
         OUTFILE.TXT, сопровождаемое комментарием.
                
                
               11.10.4.2. Команда "Замедлить" (:)
                
               Синтаксис
                :
               Команда  задержки прерывает на 1/2 секунды выполнение файла
         переназначенного ввода. Для более длинной задержки, введите  нес-
         колько команд задержки в одной строке.
               Пример:
                :        ; * Это короткая задержка...
                ::::::   ; * Это длинная задержка...
               Пример употребления команды задержки в файле переназначенно-
         го ввода.
                
                
               11.10.4.3. Команда "Пауза" (")
                
               Синтаксис
                "
               Команда задержки прерывает выполнение файла переназначенного
         ввода до тех пор, пока не будет нажат какой-либо ключ.
.


Яндекс цитирования