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



 

Часть 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 формат,  синтаксис его употребления: <выраже-
         ние>,. Спецификаторы типа описаны в главе 6 и при-
         ложении 12.1.

                                      - 121 -
         
         
                
               Bad radix (use 8, 10, or 16)
               CodeView отладчик использует только 8-, 10- и 16-ричный ра-
         дикс (систему исчисления).
                
               Bad register
               В диалоговой команде регистр (R) неправильно специфицирова-
         но имя какого-либо регистра. Разрешены следующие имена регистров:
         AX, BX, CX, DX, SP, BP, SI, DI, DS, ES, SS, CS, IP и F.
                
               Bad type cast
               Разрешены следующие C-каст-типы: void,  char,  int,  short,
         long,  signed,  unsigned,  float  и double. Типы unsigned, long и
         short могут употребляться в комбинации с другими (см. MicroSoft C
         Compiler Language Reference).
                
               Bad type (use one of 'ABDILSTUW')
               Разрешены следующие дамп-типы: ASCII(A), байт(B), целый(I),
         беззнаковый(U), словный(W), двойное  слово(D),  короткий  плаваю-
         щий(S), длинный плавающий(L), 10-байтовый плавающий(T).
                
               Badly formed type
               Таблица имен отлаживаемого файла неправильна. Если это слу-
         чится, сообщите об этом в MicroSoft корпорацию.
                
               Breakpoint # or '*' expected
               В  одной из команд Стереть, Подавить или Восстановить точку
         останова не введены номера точек останова или звездочка (*), если
         имеются ввиду все точки останова.
                
               Cannot use struct or union as scalar
               Структуры и объединения не могут использоваться как скаляр-
         ный тип в C-выражениях. Такие  переменные  должны  сопровождаться
         файл-спецификатором или ........
                
               Can't find <имя файла>
               CodeView не нашел выполняемый файл с данным именем. Возмож-
         но, вы  неправильно  указали имя файла, или он находится в другом
         директории.
                
               Constant too big
               Размер константы превышает 4 294 967 295 (0xFFFFFFFF).
                
               Divide by ziro
               Ошибочный аргумент: попытка разделить на нуль.
                
               Expression too complex
               Выражение-аргумент слишком сложно:  вводите  более  простое
         выражение.
                
               Extra input ignored
               Специфицировано   слишком много аргументов. Отладчик в этом

                                      - 122 -
         
         
         случае вычисляет часть аргументов и игнорирует остаток. Команда в
         этом случае выполняется не так, как вы хотели.
                
               Floating point error
               При появлении этой ошибки сообщите о ней в MicroSoft корпо-
         рацию.
                
               Internal debugger error
               При появлении этой ошибки сообщите о ней в MicroSoft корпо-
         рацию.
                
               Invalid argument
               Один из специфицированных аргументов не  является  CodeView
         выражением.
                
               Missing '"'
               У  специфицированной строковой константы отсутствует закры-
         вающая кавычка.
                
               Missing '('
               В специфицированном выражении отсутствует открывающая скоб-
         ка.
                
               Missing ')'
               В специфицированном выражении отсутствует закрывающая скоб-
         ка.
                
               Missing ']'
               В специфицированном выражении отсутствует открывающая квад-
         ратная скобка.
                
               No closing single quote
               В специфицированной символьной  константе  отсутствует  или
         ошибочна закрывающая кавычка.
                
               No code at this line number
               Попытка  установить точку останова в строке, не имеющей вы-
         полняемого кода (например, в строке комментария).
                
               No match of regular expression
               Строка, специфицированная регулярным выражением,не найдена.
                
               No pervious regular expression
               Не существует предыдущей строки, удовлетворяющей специфици-
         рованному регулярному выражению.
               
               No program to debug
               Попытка выполнять программу после ее окончания. Перед  пов-
         торным выполнением программы выполните команду рестарта.
                
               No source lines at this address
               Адресс, специфицированный  командой просмотр(? V), не имеет

                                      - 123 -
         
         
         какого-либо исходного текста.
                
               No such file/directory
               Специфицирован отсутствующий файл/директорий.  Например,  в
         команде Загрузить неправильно указано имя файла или путь к нему.
                
               No symbolyc information
               Отлаживаемый файл не в CodeView формате. Его нельзя отлажи-
         вать в режиме исодного текста.
                
               Not a text file
               Попытка  загрузить не текстовый файл, т.е. файл, первые 128
         символов которого не являются 9-13 и 20-126 кодами.
                
               Not an executable file
               Отлаживаемый файл не является файлом с расширением .COM или
         .EXE.
                
               Not enough space
               Отсутствует свободная память. Ошибка возникает при  попытке
         загрузить второй COMMAND.COM. Более подробно см. главу 11.
                
               Object too big
               Отрезок-аргумент команды Контролировать (Tracepoint) больше
         128 байт.
                
               Operand types incorrect for this operation
               В  C-выражении  употреблен операнд  несовместимого с данной
         операцией типа. Например: (char *)p*5.
                
               Operator must have a struct/union type
               Один из операндов (-> .) операций  не  является  указателем
         или элементом структуры.
                
               Operator needs lvalue
               Специфицированный  аргумент не является L-значением. Напри-
         мер, 3 в выражении ?3=100.
                
               Program terminated normally (<номер>)
               Выполнение отлаживаемой программы закончено.  <Номер> - это
         код возврата, возвращаемый MS-DOS'у.

               Register variable out of scope
               Попытка специфицировать регистровую переменную в виде:
               <имя функции>.<переменная>.
               Например, нельзя выполнить:
               ? parent.local,
         если local регистровая переменная.
                
               Regular expression too complex
               Регулярное  выражение-аргумент слишком сложно, вводите  бо-
         лее простое выражение.
                
               Regular expression too long
               Регулярное выражение-аргумент слишком длинно, вводите более

                                      - 124 -
         
         
         короткое выражение.
                
               Syntax error
               Неправильно набрана диалоговая команда или ассемблерная ин-
         струкция.
                
               Too many breakpoints
               Попытка ввести 21-вую точку  останова  (CodeView  допускает
         только 20).
                
               Too many open files
               Попытка открыть больше файлов, чем указано в CONFIG.SYS'е.
                
               Type conversion too complex
               Попытка  ввести каст-преобразователь в сложный тип или ука-
         затель на указатель.
                
               Unable to open file
               Попытка открыть файл, который не может быть открыт, т.к. он
         запорчен или имеет атрибут, препятствующий этому.
                
               Unknown symbol
               Специфицировано неизвестное имя. Возможно, оно  недоступно,
         или  его невозможно специфицировать, т.к. не выключена Case Sense
         опция.
           
               Unrecognized option <опция>
               Valid options: /B /C<> /F /S /T /W
               При старте отладчика введена неизвестная опция. Перевызови-
         те CodeView c правильными опциями.
           
               Usage: cv [<опции>] <отлаживаемая программа> [<ее аргументы>]
               Отладчик вызван в неправильном формате.
                
               Video mode changed without /S option
               Программа изменила режим экрана, а при старте не был специ-
         фицирован /S опцией свопинг.

               Warning: packed file
               Отлаживаемый файл упакован, его нельзя отлаживать в  режиме
         исходного  текста.  При  линковании  программ под отладчик нельзя
         употреблять /EXEPACK опцию линкера или EXEPACK утилиту.
.


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