Турбо отладчик (Turbo Debugger) 3.0

         

зависимая система подсказки  обеспечит  вас


                                  Введение
       -----------------------------------------------------------------
            Турбо отладчик (Turbo Debugger) - это  современный отладчик,
       позволяющий  отлаживать  программы  на  уровне исходного текста и
       предназначенный для программистов,  работающих  на  Турбо  языках
       фирмы  Borland.  Многочисленные перекрывающие друг друга окна,  а
       также сочетание спускающихся и раскрывающихся  меню  обеспечивают
       быстрый, интерактивный пользовательский интерфейс. Интерактивная,
       контекстно- зависимая система подсказки  обеспечит  вас подсказкой
       на всех стадиях работы.
            Ниже перечислены лишь некоторые свойства Турбо отладчика:
            - использование расширенной  памяти  типа  EMS  для  отладки
              больших программ;
            - вычисление  любых выражений языка Си,  C++,  Паскаль и Ас-
              семблера;
            - настраиваемое размещение информации на экране;
            - доступ к Ассемблеру и процессору по мере необходимости;
            - мощные средства использования точек останова  и  протокола
              регистрации;
            - запись нажатий клавиш (макрокоманды);


            - средства обратной трассировки отлаживаемой программы;
            - использование удаленной системы для отладки больших  прог-
              рамм;
            - поддержка  процессора 80386 и аппаратных отладчиков прочих
              изготовителей;
            - полная поддержка  объектно-ориентированного  программирова-
              ния на Турбо Паскаль 5.5 и старше;
            - полная поддержка языка C++ семейства  компиляторов Borland
              C++;
            - возможности  отладки резидентных в памяти программ и драй-
              веров устройств;
            - возможности отладки прикладных программ Microsoft Windows.

       TDeb 3.0 #1-3                 = 9 =
                    Новые свойства и изменения в версии 3.0

и изменения касаются только отладки


       -----------------------------------------------------------------
            Турбо отладчик версии 3.0 содержит некоторые улучшения,  ко-
       торые применимы и к отладке в DOS,  и к отладке в Windows. Другие
       улучшения и изменения касаются только отладки в Windows.
            И к отладке в DOS, и к отладке в Windows применимы следующие
       средства:
            - Буфер вырезанного изображения ("карман") Clipboard  позво-
              ляет вам  выполнять  копирование  из окон в текстовые поля
              ввода или в другие окна. Подробнее это средство описывает-
              ся далее.
            - Имеются новые средства,  касающиеся  точек  останова  (см.
              Главу 7), которые позволяют вам:
                 - устанавливать для точки останова множественные  усло-
                   вия и действия;
                - установка и удаление точек останова в группах;
                - задание точек останова для всех процедур и  функций  в
                  модуле;
               - установка  и  отмена точек останова для всех методов  и
                 объектных типов или для всех функций-элементов в  клас-
                 сах.
            - Поддерживаются шаблоны C++ и вложенные классы.
            - Удаленная отладка позволяет работать как в сети, так и че-
              рез последовательную связь (см. Приложение E).
            - С  помощью  установок  DOS  COUNTRY  или  установок  языка
              Windows поддерживаются сортировки в соответствии с набора-
              ми символов разных стран.
            Следующие средства относятся только к отладке в Windows:
            Окно CPU содержит новую область,  в которой показываются се-
       лекторы защищенного режима,  что позволяет вам просматривать  со-
       держимое ячеек памяти, на которые ссылаются данные селекторы.
            - Драйвер   устройства  TDDEBUG.386  обеспечивает  поддержку
       прерывания программы по клавишам Ctrl-Alt-SysRq.  Кроме того этот

драйвер устройства  поддерживает  аппаратные  отладочные


       драйвер устройства  поддерживает  аппаратные  отладочные регистры
       процессора Intel   80386   (и  старше).  Об  установке  программы
       TDDEBUG.386 рассказывается далее. Об аппаратной отладке рассказы-
       вается в соответствующем разделе и в файле HDWDEBUG.TD.
            - Отладка DLL теперь выполняется быстрее, поскольку загружа-

       TDeb 3.0 #1-3                = 10 =
       ется таблица идентификаторов прикладной программы и таблица иден-
       тификаторов любой явно загружаемой DLL или  той  библиотеки  DLL,
       которую вы проходите.

       TDeb 3.0 #1-3                = 11 =
             Требования к аппаратному и программному обеспечению
       -----------------------------------------------------------------
            Турбо отладчик  может  работать на компьютерах семейства IBM
       PC,  включая серии XT, AT и PS/2, а также полностью совместимых с
       ними. Компьютер должен работать под управлением операционной сис-
       темы DOS версии 3.1 или более поздней и иметь  как  минимум  384К
       оперативной  памяти.  Компьютер  может быть оснащен любым цветным
       или монохромным монитором,  поддерживающим режим отображения в 80
       столбцов. Мы рекомендуем использовать компьютер с жестким диском.
       При работе с Турбо отладчиком в системе с двумя  накопителями  на
       гибких дисках этого следует использовать дискеты высокой плотнос-
       ти.  Можно также работать с 3.5-дюймовыми дискетами по 720К. Сле-
       дует отметить,  что программа INSTALL в последнем случае неприме-
       нима, и копирование файлов требуется выполнять самостоятельно.
            Турбо отладчик не требует использования математического соп-
       роцессора 8087.
            Турбо отладчик  работает  со  следующими  продуктами   фирмы
       Borland: Borland С++, Турбо Паскаль версии 5.0 или старше, а так-
       же  Турбо  Ассемблер версии 1.0 или старше.  Прежде чем загружать
       программу в Турбо отладчик, необходимо скомпилировать ее исходный

При запуске отладчика TD необходимо,


       текст  в  исполняемый  файл типа EXE в режиме формирования полной
       отладочной информации.
            При запуске отладчика TD необходимо, чтобы были доступны как
       выполняемый файл, так и файлы с исходным текстом программы. Турбо
       отладчик ищет исходные файлы сначала там, где их находил компиля-
       тор при компиляции программы, затем в каталоге, заданном командой
       Options/Path for Source (Параметры/Маршрут  доступа  к  исходному
       файлу), затем в текущем каталоге, и в последнюю очередь в том ка-
       талоге, где находится выполняемый файл типа EXE.
                          Замечания по терминологии
       -----------------------------------------------------------------
            Для удобства и краткости изложения несколько терминов в дан-
       ном руководстве используется в более широком смысле,  чем обычно.
       К ним относятся термины "модуль", "функция" и "аргумент".
            Термин "модуль" в данном руководстве  обозначает  эквивалент
       модуля (module) Си и Ассемблера, а также модуля (unit) Паскаля.
            Термин "функция"  в  данном  руководстве  означает функцию в
       языке Си и то,  что в языке Паскаль называется подпрограммой,  то
       есть охватывает процедуры,функции и объектно-ориентированные пра-
       вила. В языке Си функция может возвращать значение (так же, как и
       функция  в  Паскале),  но  может и не возвращать (как процедура в
       Паскале).  (В Си функция, которая не возвращает значения, называ-
       ется  пустой  (void)  функцией).  Для  краткости изложения термин
       "функция" часто используется для обозначения  как  функций  языка
       Си,  так и функций и процедур языка Паскаль,  конечно,  кроме тех

       TDeb 3.0 #1-3                = 12 =
       разделов руководства, которые посвящены конкретным языкам.
            Термин "аргумент" используется в данном руководстве как  си-

Ниже приведено краткое описание содержания


       ноним  термина "параметр".  Он означает как аргументы (параметры)
       командной строки,  так и аргументы  (параметры),  передаваемые  в
       процедуры и функции.

       TDeb 3.0 #1-3                = 13 =
                       Содержание данного руководства
       -----------------------------------------------------------------
            Ниже приведено краткое описание содержания глав и приложений
       данного руководства.
            В Главе  1 "Начало работы" описано содержимое дистрибутивных
       дискет и  сообщается,  как записать файлы Турбо отладчика на свой
       компьютер.  Даются также рекомендации, какую главу читать следую-
       щей, в зависимости от начального уровня знаний.
            В Главе 2 "Отладка и Турбо отладчик" описан пользовательский
       интерфейс отладчика TD,  система меню, окна, объясняется, как от-
       вечать на запросы отладчика и сообщения об ошибках.
            В Главе 3 "Небольшой пример" рассмотрен образец отладки, ко-
       торый  проведет вас по всему сеансу отладки программы, написанной
       либо на Си,  либо на Паскале,  и продемонстрирует многие полезные
       возможности Турбо отладчика.
            В Главе 4 "Запуск Турбо отладчика" рассказано, как запустить
       отладчик из командной строки DOS, для чего используются параметры
       командной строки,  и как записать часто используемые параметры  в
       файл конфигурации.
            В Главе 5 "Управление процессом  выполнения  программы"  де-
       монстрируются различные способы запуска и останова программы, по-
       казывается,  как начать новый сеанс отладки или возобновить  пос-
       ледний сеанс.
            В Главе 6 "Проверка и модификация данных" описаны уникальные
       возможности Турбо отладчика  по  проверке  и  модификации  данных
       внутри отлаживаемой программы.
            В Главе  7 "Точки останова" объясняется концепция "точки ос-

охватывающая функции отладчика, которые обычно


       танова",  охватывающая функции отладчика, которые обычно называют
       точками  прерывания,  точками  слежения или контрольными точками.
       Описаны как условные так и безусловные точки  останова,  а  также
       действия, которые могут выполняться при включении точки останова.
            В Главе 8 "Проверка и модификация файлов" описано,  как про-
       верять и модифицировать исходные файлы программ,  а также  произ-
       вольные дисковые файлы,  содержащие как текстовые, так и двоичные
       данные.
            В Главе 9 "Выражения" описаны синтаксические правила постро-
       ения выражений на языках Си,  C++,  Паскаль и Ассемблер,  которые
       воспринимаются Турбо отладчиком,  а также символы управления фор-
       матом,  которые используются для задания формата  отображения  на
       экране значений выражений.
            В Главе 10 "Отладка С++ и объектно-ориентированного Паскаля"
       рассматриваются специальные средства отладчика, позволяющие прос-

       TDeb 3.0 #1-3                = 14 =
       матривать объекты программ на языке Турбо Паскаль 5.5 и старше, и
       классы программ на языках семейства Borland С++.
            В Главе  11 "Отладка на уровне Ассемблера" описывается,  как
       просматривать содержимое областей памяти в виде неструктурирован-
       ного  шестнадцатиричного  дампа и изменять его,  как использовать
       встроенный Ассемблер и дисассемблер,  как  проверять  и  изменять
       состояние регистров и флагов процессора.
            В Главе 12 "Сопроцессор 80х87 и эмулятор" описано,  как про-
       верять и модифицировать  содержимое  регистров  сопроцессора  или
       состояние его эмулятора.
            В Главе  13 "Справочник по командам отладчика" приведен пол-
       ный перечень всех команд главного меню и  команд  локальных  меню
       всех видов окон.
            В Главе  14 "Отладка программы" описана методика эффективной

и производительности процессора 80386, позволяя


       отладки программ.
            В Главе 15 "Виртуальная  отладка  на  машине  с  процессором
       80386" объясняется,  как использовать преимущества дополнительной
       памяти и производительности процессора 80386, позволяя отлаживае-
       мой  программе  использовать  полное  адресное  пространство ниже
       640К, как если бы не был загружен отладчик.
            В Главе 16 "Отладка в защищенном режиме  при  помощи  TD286"
       описано, как использовать TD286 для запуска Турбо отладчика в за-
       щищенном режиме,  освобождая память для отладки больших программ.
            В Главе 17 "Турбо отладчик для Windows (TDW)"  описан запуск
       отладчика TDW и использование его специальных средств.
            В Главе 18 "Отладка прикладной программы для Windows" приво-
       дится пример сеанса отладки при  мера  прикладной  программы  для
       Windows.
            В Главе   19  "Отладка  прикладной  программы,  использующей
       ObjectWindows" показан сеанс отладки примера  программы  Windows,
       написанной с  использованием  Borland  C++ и библиотечного класса
       ObjectWindows.
            В Главе  20  "Отладка  резидентных программ и драйверов уст-
       ройств" объясняется,  как  отлаживать  при помощи Турбо отладчика
       резидентные программы и программы, которые становятся резидентны-
       ми при загрузке, а также как загружать вручную таблицу имен иден-
       тификаторов.
            В Приложении  A  "Параметры командной строки" приведен пере-
       чень всех параметров командной строки, которые подробно описаны в
       Главе 4.
            В Приложении  B  "Технические  замечания" приведены сведения

       TDeb 3.0 #1-3                = 15 =
       для опытных программистов.  В ней описаны подробности  реализации
       отладчика, которые объясняют, как он взаимодействует с отлаживае-
       мой программой и операционной системой DOS.

ведены все мнемонические обозначения команд


            В Приложении  C "Ключевые слова встроенного ассемблера" при-
       ведены все мнемонические обозначения команд и  специальные слова,
       которые используются при вводе команд для процессоров 8086/80286/
       80386 и 8087/80287/80387.
            В Приложении D "Настройка Турбо отладчика"  объясняется, как
       использовать программу TDINST для настройки  цветов экрана  и из-
       менения параметров отладчика, используемых по умолчанию.
            В Приложении E "Удаленная отладка" описано, как использовать
       утилиту  WREMOTE  для  удаленной  отладки прикладных программ для
       Windows и утилиту TDREMOTE для отладки  прикладных  программ  для
       DOS. Эти утилиты позволяют отлаживать при помощи отладчика, нахо-
       дящегося на одной машине,  программы, находящиеся на другой маши-
       не.
            В Приложении  F  "Подсказки  и сообщения об ошибках" описаны
       все запросы и сообщения об ошибках,  которые  можно  получить  во
       время отладки, приведены рекомендации, как на них отвечать.
            В Приложении G "Отладка программ на  разных  языках"  даются
       некоторые рекомендации по отладке программ, написанных на Си, Ас-
       семблере или Паскале.
            В Глоссарии  приведен перечень терминов,  наиболее часто ис-
       пользуемых в данном руководстве, и дано их краткое определение.

       TDeb 3.0 #1-3                = 16 =
                  Как обратиться за помощью к фирме Borland
       -----------------------------------------------------------------
            Borland предлагает вам множество услуг, которые позволят от-
       ветить на вопросы о данном программном продукте.  Убедитесь,  что
       вы послали регистрационную карту.  Для зарегистрированных пользо-
       вателей обеспечивается техническое сопровождение, кроме того, они
       могут получать  информацию  обо  всех  изменениях и дополнениях к
       продукту.

В руководстве  дана информация по


                            Ресурсы вашего пакета
       -----------------------------------------------------------------
            Данный пакет содержит много ресурсов,  которые могут вам по-
       мочь:
            - В руководстве  дана информация по каждому аспекту програм-
              мы. Используйте его, как основной источник информации. Из-
              менения  и  дополнения  к руководствам можно найти в файле
              MANUAL.TD.
            - Во время работы с программой для получения справочной  ин-
              формации вы можете нажать клавишу F1.
            - Ответы на общие вопросы,  обзор новых средств,  информация
              об установке содержатся в файле README,  который находится
              в каталоге основного компилятора языка.  В этом файле опи-
              саны также текстовые файлы,  которые  дополняют  материалы
              руководства.
                          Возможности фирмы Borland
       -----------------------------------------------------------------
            Службы технического  сопровождения  фирмы  Borland публикуют
       техническую информацию по множеству тем.  Там вы можете  получить
       ответы на возникшие вопросы.
            TechFax (8000-822-4269)  - это 24-часовая автоматизированная
       служба, позволяющая свободно получить техническую  информацию  по
       факсу. Вы можете запросить до трех документов за один вызов.
            408-439-9096 (модем)  - пересылка файлов (File DownLoad BBS,
       2500 бод).  Через модем вы можете получать образцы файлов,  прик-
       ладных программ  и техническую информацию.  Специальной установки
       не требуется.
            Подписчики информационных услуг CompuServe,  GEnie  или  BIX
       могут получать  техническую  поддержку  с помощью модема.  Чтобы,
       имея доступ к информационной службе, связаться с Borland, исполь-
       зуйте следующую таблицу:

       TDeb 3.0 #1-3                = 17 =
            Оперативные информационные услуги

Передачу электронных сообщений адресуйте All


            -----------------------------------------
            Служба               Команда
            -----------------------------------------
            CompuServe           Go BORLAND
            BIX                  JOIN BORLAND
            GEnie                BORLAND
            -----------------------------------------
            Передачу электронных сообщений адресуйте All или Sysop.  Се-
       рийный номер вам указывать не нужно: если сообщения не посылаются
       по частной системе пересылки, они общедоступны. Включите в вопрос
       максимум информации.  Обслуживающий персонал ответит на сообщение
       в течении одного рабочего дня.
            408-438-5300 - по этому телефону можно обратиться в наш  от-
       дел технического обслуживания по рабочим дням с 6 утра до 5 вече-
       ра. Звоните пожалуйста по телефону, который находится недалеко от
       компьютера с работающей программой.  Прежде чем позвонить, подго-
       товьте следующую информацию:
            1. Название продукта и  серийный  номер  вашей  оригинальной
               дистрибутивной дискеты.  Этот номер обязателен,  иначе мы
               не сможем обслужить вашу заявку.
            2. Номер версии вашего продукта. Номер версии Турбо отладчи-
               ка  выводится на дисплей после исходной загрузки програм-
               мы,  до того,  как вы нажмете какие-либо клавиши. Если вы
               находитесь  в  системе  Турбо  отладчика,  выберите пункт
               About из меню Ё (System).
            3. Семейство и модель компьютера,  а также любого используе-
               мого вами дополнительного аппаратного обеспечения.
            4. Название и номер версии операционной системы. (Номер вер-
               сии можно определить,  введя по приглашению  DOS  команду
               VER).
            5. Содержимое вашего файла AUTOEXEC.BAT.
            6. Содержимое вашего файла CONFIG.SYS.
            7. Содержимое  файлов WIN.INI и SYSTEM.INI,  расположенных в

с 7 до 17 часов вы


       каталоге Windows (для вопросов, касающихся TDW).
            8. Если звонок связан с какой-то проблемой, какие шаги нужно
       выполнить, чтобы возникла эта проблема.
            По телефону  408-438-5300 с 7 до 17 часов вы можете получить
       ответы на нетехнические вопросы,  включая цены,  изменения и т.д.
       (служба покупателя).

       TDeb 3.0 #1-3                = 18 =
                          Рекомендуемая литература
       -----------------------------------------------------------------
            Многие ведущие издательства поддерживают программные продук-
       ты фирмы Borland широким выбором замечательных книг по этим  про-
       дуктам, от предназначенных для начинающих пользователей, и кончая
       предназначенными для опытных специалистов. Кроме того, существует
       еще  ряд книг по другим темам,  например программирование в среде
       Windows, с которыми также следует ознакомиться.
                Турбо отладчик и средства разработки программ
       -----------------------------------------------------------------
            Ниже приводится несколько названий книг, содержащих дополни-
       тельную информацию по  Турбо  отладчику  и  средствам  разработки
       программного обеспечения:
            Ackerman,Charles. Turbo Debugger and Tools:  A Self-Teaching
       Guide, John Wiley and Sons (New York:1990).
            Swan,Tom. Mastering  Turbo Assembler,  Howard W.Sams and Co.
       (Carmel,IN: 1989).
            Swan,Tom. Mastering Turbo Debugger and Tools,  Howard W.Sams
       and Co. (Carmel,IN: 1990).
            Syck,Gary. The  Waite Group's Turbo Assembler Bible,  Howard
       W.Sams and Co. (Carmel,IN: 1990).
                         Книги по Microsoft Windows
       -----------------------------------------------------------------
            Следующие издания содержат сведения о том,  как следует  пи-
       сать прикладные программы для Windows:
            Microsoft staff.

Guide to Programming, Microsoft Corporation.


Microsoft Windows Software Development Kit,
       Guide to Programming, Microsoft Corporation. (Redmond, WA: 1990).
            Microsoft staff. Microsoft Windows Software Development Kit,
       Reference, Vols  1 and 2,  Microsoft Corporation.  (Redmond,  WA:
       1990).
            Microsoft staff. Microsoft Windows Software Development Kit,
       Tools, Microsoft Corporation. (Redmond, WA: 1990).
            Petxold, Charles.   Programming  Windows,  Microsoft  Press.
       (Redmond, WA: 1990).

       TDeb 3.0 #1-3                = 19 =
                           Глава 1. Начало работы
       -----------------------------------------------------------------
            Пакет компилятора языка фирмы Borland включает в  себя набор
       дистрибутивных дискет и данное "Руководство пользователя по Турбо
       отладчику" (Turbo Debugger User's Guide).  Дистрибутивные дискеты
       содержат все программы,  файлы и утилиты, необходимые для отладки
       программ, написанных на языках Borland  C++,  Турбо  Ассемблер  и
       Турбо Паскаль. Кроме этого, пакет Турбо отладчика содержит в фай-
       лах  README,  FREELIST.DOC,  HELPME!.TD,   MANUAL.TD,   UTILS.TD,
       HDWDEBUG.TD и DBGGBOARD.TD документацию по вопросам,  не освещен-
       ным в данном руководстве.
            Руководство пользователя  по  Турбо  отладчику  обеспечивает
       последовательное ознакомление с возможностями Турбо  отладчика  и
       полный справочник команд отладчика.
            Если вы  до сих пор не знакомы с положением о лицензировании
       продуктов Borland,  ознакомьтесь с вашей копией договора. Вышлите
       на фирму  заполненную  регистрационную  карту  на ваш продукт,  и
       тогда фирма будет высылать вам уведомления о  любых  модификациях
       данного продукта и новых доступных продуктах.
                           Дистрибутивные дискеты
       -----------------------------------------------------------------
            При установке Турбо отладчика на свою машину вы будете копи-

дискеты на рабочие дискеты или


       ровать  дистрибутивные  дискеты на рабочие дискеты или на жесткий
       диск.  Вы  можете  запустить  специальную   программу   установки
       INSTALL.EXE,  которая  находится на одной из ваших дистрибутивных
       дискет.  Дистрибутивные дискеты отформатированы под дисководы для
       двухсторонних  дискет  с  двойной  плотностью записи и могут быть
       прочитаны на персональном компьютере семейства IBM PC и совмести-
       мых с ними.  Программа Install копирует все файлы документации  в
       подкаталог DOC    основного   каталога   компилятора,   например,
       C:\BORLANDC\DOC.
            Список файлов,  поставленных вам на дистрибутивных дискетах,
       см. в файле FILELIST.DOC на дискете Installation.
                                 Файл README
       -----------------------------------------------------------------
            Очень важно,  чтобы прежде чем начать что-либо делать в сис-
       теме Турбо отладчика,  вы нашли время ознакомиться  с  содержимым
       файла README,  который находится на дискете Installation (устано-
       вочный диск). Этот файл содержит самую свежую информацию, которой
       может не быть в данном руководстве. Кроме того, в нем перечислены
       все файлы, имеющиеся на дистрибутивных дискетах, с кратким описа-
       нием каждого из них.
            Для того чтобы прочитать содержимое файла README, надо вста-

       TDeb 3.0 #1-3                = 20 =
       вить дискету Installation в дисковод A, сделать его текущим, вве-
       дя с клавиатуры команду A: и, нажав клавишу Enter, затем ввести с
       клавиатуры README и нажать Enter еще раз.  После того, как загру-
       зится файл README,  его содержимое можно прокручивать на экране с
       помощью клавиш "Стрелка вверх" и "Стрелка вниз".  Для  завершения
       просмотра надо нажать клавишу Esc.
                              Файл HELPME!.TD
       -----------------------------------------------------------------

На дискете Installation имеется файл 


            На дискете Installation имеется файл  HELPME!.TD, содержащий
       ответы на вопросы, которые часто возникают у пользователей. Обра-
       щайтесь к этому файлу, когда у вас возникнут какие-либо затрудне-
       ния. Кроме всего прочего,  файл HELPME!.TD содержит информацию по
       следующим вопросам:
            - вывод на экран для программ,  работающих в  графическом  и
              текстовом режимах;
            - выполнение других программ, не выходя из отладчика;
            - прерывание выполнения и выход из отлаживаемой программы;
            - синтаксические  и  грамматические  отличия Турбо отладчика
              от Турбо языков;
            - отладка программ, использующих несколько языков, с помощью
              Турбо отладчика;
            - Tandy 1000A,  IBM PC Convertible или NEC MultiSpeed и про-
              чие компьютеры,  использующие NMI (немаскируемые  прерыва-
              ния).
                               Файл MANUAL.TD
       -----------------------------------------------------------------
            Чтобы ознакомиться с последними изменениями и дополнениями к
       данному руководству, прочтите файл MANUAL.TD.
                           Утилиты Турбо отладчика
       -----------------------------------------------------------------
            Пакет Турбо отладчика поставляется с  несколькими утилитами.
       Подробная информация об этих утилитах находится на дистрибутивных
       дискетах. Доступ к этой информации описан в файле README.
            Ниже приводится краткое описание утилит Турбо отладчика:
            - Утилита для связи с файлами на удаленной системе TDRF.EXE,
              работающая вместе с отладчиком и позволяющая передавать на
              удаленную систему основные команды управления файлами.
            - Утилита    удаления    таблицы    имен    идентификаторов,

       TDeb 3.0 #1-3                = 21 =
              TDSTRIP.EXE, позволяет удалить отладочную информацию (таб-

лицу имен идентификаторов) из вашей


              лицу имен идентификаторов) из вашей программы без  повтор-
              ной компоновки.
              Примечание: Утилиту  TDSTRIP можно использовать для подго-
              товки к отладке файлов COM.
              Типичное использование этой  утилиты  состоит  в  создании
              файлов .TDS,  используемых для отладчик файлов .COM.  Пос-
              кольку полученный с помощью компилятора файл .COM не соде-
              ржит таблицу идентификаторов,вы можете отладить его, толь-
              ко если сделаете следующее:  скомпилируете исходный код  с
              включением  отладочной  информации  в  односегментный файл
              .EXE,  затем запустите для него утилиту TDSTRIP. Если файл
              .EXE  можно  преобразовать  в файл .COM,  утилита  TDSTRIP
              создает файл .COM и файл .TDS.  После этого вы может отла-
              живать файл .COM, используя для него файл .TDS.
            - TDMAP.EXE  позволяет  добавлять в файл .EXE отладочную ин-
              формацию из соответствующего файла .MAP для отладки выпол-
              няемой программы,  полученную с использованием компилятора
              или компоновщика иной фирмы, нежели Borland.
            - TDDEV.EXE выводит на дисплей таблицу,  в которой  показана
              информация о драйверах устройств.
            - Утилита  TDMEM.EXE  выводит на дисплей таблицу,  в которой
              показано текущее использование и  доступность  оперативной
              памяти,  включая  расширенную  (expanded) и дополнительную
              (extended) память.
            - Утилита TDUMP.EXE - это дисассемблер объектных  модулей  и
              файлов .EXE.
            - Кроме того, имеется небольшая резидентная программа TDNMI.
              COM,  сбрасывающая триггер срабатывания прерываний при ис-
              пользовании платы Periscope I.
            Для того,    чтобы   получить   список   параметров   утилит
       TDCONVRT.EXE,  TDRF.EXE,  TDSTRIP.EXE,  TDPACK.EXE, TDMAP.EXE или

На дискете Installation имеется программа


       TDUMP.EXE,  наберите имя соответствующей команды и нажмите Enter.
       Например,  для  получения  параметров  командной  строки  утилиты
       TDMAP.EXE, введите команду:
            TDMAP

       TDeb 3.0 #1-3                = 22 =
                          Установка Турбо отладчика
       -----------------------------------------------------------------
            На дискете Installation имеется программа INSTALL.EXE, кото-
       рая поможет вам установить  Турбо отладчик версии 3.0 на свою ма-
       шину. Общая информация об установке находится в файле README.
                Установка TDDEBUG.386 для использования c TDW
       -----------------------------------------------------------------
            На ваших  установочных  дискетах  имеется  файл TDDEBUG.386,
       обеспечивающий те  же  функциональные  возможности,  что  и  файл
       Windows SDK. Кроме того, он обеспечивает поддержку аппаратных от-
       ладочных регистров процессора 80386 (и старше).
            Программа установки должна  скопировать  этот  файл  на  ваш
       жесткий диск  и  изменить  файл  Windows SYSTEM.INI.  После этого
       Windows вместо WINDEBUG.386 будет загружать TDDEBUG.386. Если ус-
       тановочная программа не сможет этого сделать,  она сообщит вам об
       этом. Тогда вам придется это сделать самостоятельно:
            1. Установочная программа должна копировать на  жесткий диск
               с установочной дискеты файл TDDEBUG.386.  Стандартным ка-
               талогом для этого файла является C:\BORLAND\BIN.  Если вы
               перепишете  этот файл в другой каталог,  подставьте его в
               инструкциях.
            2. С помощью редактора  откройте  файл  Windows  SYSTEM.INI,
               найдите  []386nh]  и  добавьте  с  раздел 386nh следующую
               строку:
                  device*cc:\borlandc\bin\tddebug.386
            3. Если в секции 386nh  имеется  строка,  которая  загружает
               WINDEBUG.386,  то закомментируйте эту строку точкой с за-

Если у  вас  есть  плата 


               пятой,  или удалите ее  совсем.  (Одновременно  загружать
               TDDEBUG.386 и WINDEBUG.386 нельзя.)
               Например, если вы загружаете WINDEBUG.386 из каталога C:\
               WINDOWS, то комментируемой строкой будет:
                 ;device=c:\windows\windebug.386
                             Аппаратная отладка
       -----------------------------------------------------------------
            Если у  вас  есть  плата  для  аппаратной отладки (например,
       Arton,  Periscope,  Purart Trapper и
т.д.) или аппаратный драйвер
       устройства,  вы можете использовать их совместно с Турбо отладчи-
       ком. Обратитесь к изготовителю  относительно  совместимости  этой
       платы с Турбо отладчиком.

       TDeb 3.0 #1-3                = 23 =
            Информацию об  интерфейсе между платами аппаратной отладки и
       Турбо отладчиком можно найти в файле DBGBOARD.TD.
                       Средства аппаратной отладки DOS
       -----------------------------------------------------------------
            При работе на компьютере с процессором 80386  можно  устано-
       вить драйвер устройства TDH386.SYS,  который поставляется с Турбо
       отладчиком.  Этот драйвер позволяет существенно ускорить работу с
       точками  останова,  которые следят за изменениями содержимого об-
       ластей памяти и доступом к порту ввода-вывода.
            Скопируйте этот файл в каталог,  где у вас хранятся драйверы
       устройств, и добавьте в файл CONFIG.SYS строку следующего вида:
            DEVICE=\SYS\TDH386.SYS
            При следующей загрузке Турбо отладчика он сможет найти и ис-
       пользовать этот драйвер устройства.
            Примечание: Подробнее  о TD386 и TDH386.SYS рассказывается в
       Главе 15.
            Для получения подробной информации об интерфейсе этого драй-
       вера устройства обратитесь к поставляемой на  диске  документации
       об аппаратном интерфейсе отладчика (файл HDWDEBUG.TD).

Аппаратная отладка для прикладных программ


             Аппаратная отладка для прикладных программ Windows
       -----------------------------------------------------------------
            Отладочные регистры процессора Intel 80386 (или старше) мож-
       но использовать для отладки программ Windows.  Чтобы использовать
       эти регистры,  нужно  загрузить  при  запуске Windows TDDEBUG.386
       (см. выше) и,  конечно, использовать для отладки программы отлад-
       чик TDW.
            Более подробно  об отладке прикладных программ Windows расс-
       казывается в файле HDWDEBUG.TD.

       TDeb 3.0 #1-3                = 24 =
                             Что делать дальше?
       -----------------------------------------------------------------
            После того,  как вы скопируете все  необходимые  для  работы
       файлы, вы можете приступить к изучению Турбо отладчика. Поскольку
       данное руководство рассчитано на две различные группы пользовате-
       лей,  то  в зависимости от того,  к какой группе вы принадлежите,
       вам могут понадобиться разные главы.  Приведенные ниже рекоменда-
       ции помогут вам выбрать необходимый материал.
                    Программистам, изучающим Турбо языки
       -----------------------------------------------------------------
            Если вы только начинаете изучать один  из  Турбо языков,  то
       прежде чем осваивать Турбо отладчик, вы, вероятно, захотите иметь
       возможность писать на этом языке небольшие  программы.  Необходи-
       мость отладки реальных программ,  написанных вами, и приведет вас
       к практическому изучению Турбо отладчика.  После того, как вы по-
       лучите знания,  необходимые для программирования на данном языке,
       прочтите Главу  3,  "Небольшой пример",  которая познакомит вас с
       основными функциями Турбо отладчика.  Вы изучите основные возмож-
       ности отладчика, которые вам понадобятся для отладки своей первой
       программы.  В следующей главе рассмотрены более  сложные  функции

имеющим опыт работы на Турбо


       отладчика.
             Программистам, имеющим опыт работы на Турбо языках
       -----------------------------------------------------------------
            Если вы  уже  имеете  опыт программирования на одном из Тур-
       бо-языков, вы можете начать с изучения новых  особенностей  среды
       Турбо отладчика, которые описаны в Главе 2. Если это соответству-
       ет вашему стилю работы вы можете проработать учебное руководство,
       либо  же можете сразу перейти к Главе 4 "Запуск Турбо отладчика".
       Полный перечень  команд  отладчика  приведен  в Главе 13 "Команды
       Турбо отладчика".

       TDeb 3.0 #1-3                = 25 =
                      Глава 2. Отладка и Турбо отладчик
       -----------------------------------------------------------------
            Отладка -  это  процесс  нахождения  и  исправления ошибок в
       программе. Нет ничего необычного в том, что поначалу поиск и уст-
       ранение ошибок занимают больше времени,  чем написание программы.
       Отладка не является точной наукой.  Часто лучшее средство отладки
       находится в голове у программиста.  Тем не менее, систематический
       метод отладки может дать некоторые преимущества.
            Процесс отладки в общем случае  можно  разделить  на  четыре
       этапа:
            1. Обнаружение ошибки.
            2. Поиск ее местонахождения.
            3. Определение причины ошибки.
            4. Исправление ошибки.
                             Обнаружение ошибки
       -----------------------------------------------------------------
            Первый этап является наиболее очевидным. Компьютер либо "за-
       висает" во время работы программы,  либо происходит сбой, который
       проявляется в выдаче на экран бессмысленной информации. Однако, в
       некоторых  случаях ошибка не проявляется так очевидно.  Программа
       может работать хорошо до тех пор, пока не будет введено некоторое

проверки можно обнаружить, что результат


       число  (например,  0 или отрицательное число),  или пока не будет
       тщательно проверена выдаваемая ею информация.  Только после такой
       проверки можно обнаружить, что результат отличается от ожидаемого
       в 2 раза,  или что в середине списка имен стоят неправильные ини-
       циалы.
                              Нахождение ошибки
       -----------------------------------------------------------------
            Второй этап иногда является самым трудным.  Он заключается в
       том,  чтобы найти место в программе, где находится ошибка. Просто
       невозможно держать в голове всю программу сразу (если  эта  прог-
       рамма не очень маленькая). Лучший подход - это "разделяй и власт-
       вуй",  то есть разбивать программу на части и отлаживать  их  от-
       дельно  друг  от  друга.  Структурное  программирование  идеально
       подходит для такой отладки.

       TDeb 3.0 #1-3                = 26 =
                         Определение причины ошибки
       -----------------------------------------------------------------
            Третий этап,  выяснение причины ошибки,  возможно,  является
       второй наиболее трудной стадией отладки.  После того,  как  будет
       определено  местонахождение  ошибки,  обычно становится несколько
       проще определить причину неправильной работы программы. Например,
       если  вы  определили,  что  ошибка находится в процедуре с именем
       PrintNames, вам достаточно просмотреть текст только этой процеду-
       ры,  а не всей программы. Но даже в этом случае ошибка может ока-
       заться настолько "неуловимой",  что вам придется немного поэкспе-
       риментировать, прежде чем вы сможете ее найти.
                             Исправление ошибки
       -----------------------------------------------------------------
            Последний этап заключается в исправлении  ошибки.  Вооружив-
       шись  знанием  языка  программирования  и знанием местонахождения

После этого вы снова запускаете


       ошибки,  вы устраняете ее.  После этого вы снова запускаете прог-
       рамму,  ждете появления следующей ошибки, и процесс отладки начи-
       нается снова.
            Примечание: Более  подробное  рассмотрение  процесса отладки
       см. в Главе 14.
            При написании программы процесс,  состоящий их этих  четырех
       этапов, повторяется многократно. Например, многочисленные синтак-
       сические ошибки не позволяют откомпилировать программу,  пока все
       они не будут исправлены. Компиляторы фирмы Borland имеют встроен-
       ные средства проверки синтаксиса, которые информируют программис-
       та об ошибках такого типа и позволяют тут же их исправлять.
            Однако есть ошибки гораздо более тонкие и коварные, чем син-
       таксические.  Они не проявляются до тех пор,  пока вы не  введете
       отрицательное число, либо являются настолько неуловимыми, что за-
       гоняют вас в тупик.  Здесь-то вам и придет на помощь Турбо отлад-
       чик.
                     Что может вам дать Турбо отладчик?
       -----------------------------------------------------------------
            Автономный Турбо отладчик дает вам доступ  к  гораздо  более
       мощным средствам отладки,  чем те, которые имеются в самом компи-
       ляторе.
            Примечание: Добавление такого мощного отладчика к компилято-
       ру слишком сильно увеличило бы его размер.
            Турбо отладчик можно использовать для отладки любой програм-
       мы на языке Си или C++ для компилятора семейства  Borland,  Турбо
       Паскале,  Турбо Ассемблере.
            Турбо отладчик можно использовать для решения двух  трудней-

       TDeb 3.0 #1-3                = 27 =
       ших проблем процесса отладки: поиска места нахождения ошибки и ее
       причины. Турбо отладчик поможет вам преодолеть  эти  трудности  с
       помощью  исключительных  возможностей  по  замедлению  выполнения
       программы, благодаря чему вы можете исследовать  состояние  прог-

чтобы увидеть, как они воздействуют


       раммы  в  любой заданной точке.  Вы даже можете тестировать новые
       значения переменных,  чтобы увидеть, как они воздействуют на вашу
       программу.  Эти  возможности  реализуются  с помощью трассировки,
       пошагового выполнения, просмотра, изменения и прослеживания.
       ------------------------------------------------------------------
       Трассировка          Вы  можете выполнять программу по одному опе-
                            ратору.
       Обратная трассировка Вы можете выполнить код в  обратном порядке.
       Пошаговое выполнение Вы можете выполнять программу по одному опе-
                            ратору,  но  пропускать  вызовы  процедур  и
                            функций. Если вы уверены, что что в процеду-
                            рах и функциях нет ошибок, то пропуск их вы-
                            зовов увеличит скорость отладки.
       Просмотр             Вы можете  запросить  Турбо отладчик создать
                            специальное окно для показа  самых различных
                            вещей - переменных, их значений, точек оста-
                            нова, содержимого стека, файлов регистрации,
                            данных,  файлов исходных текстов,  кодов ЦП,
                            памяти,  регистров,  информации  процессора,
                            арифметики с плавающей точкой,  вывода прог-
                            раммы.
       Проверка             Вы можете запросить Турбо  отладчик получить
                            содержимое  сложных структур данных из вашей
                            программы.
       Изменение            Можно изменить  содержимое  переменной  (как
                            локальной, так и глобальной) на новое значе-
                            ние.
       Прослеживание        Вы можете выделить некоторые программные пе-
                            ременные  и прослеживать изменение их значе-
                            ний в процессе работы программы.

Можно использовать эти мощные средства


       -----------------------------------------------------------------
            Можно использовать эти мощные средства для  разделения вашей
       программы на некоторые фрагменты,  подтверждать работоспособность
       которых вы можете поочередно.  Таким образом, вы сможете просмот-
       реть всю программу, независимо от ее величины и сложности, и най-
       ти ошибку. Может быть вы найдете функцию,которая неверно изменяет
       значение  переменной,  или  неправильную рекурсию,  или попадание
       программы в бесконечный цикл.  В любом случае Турбо отладчик зна-
       чительно поможет вам найти и определить тип ошибки.
            В Турбо отладчик версии 2.0 и старше внесены улучшения, поз-

       TDeb 3.0 #1-3                = 28 =
       воляющие выполнять отладку объектно-ориентированных программ Пас-
       каля и С++. Он позволяет работать с объектами и классами. Он кор-
       ректно обрабатывает позднее связывание  виртуальных  методов  или
       функций-элементов, поэтому отладчик всегда выполняет и выводит на
       экран корректный код.

       TDeb 3.0 #1-3                = 29 =
                    Что Турбо отладчик не сможет сделать
       -----------------------------------------------------------------
            Познакомившись со всеми этими возможностями Турбо отладчика,
       вы можете подумать, что он может все. В действительности есть как
       минимум три вещи, которые Турбо отладчик не сможет сделать:
            - Он не имеет встроенного редактора  текстов  для  изменения
              вашей исходной программы.  Большинство программистов имеет
              свои излюбленные редакторы, и вполне довольны ими. Было бы
              расточительством  памяти  включать  какой-либо  редактор в
              Турбо отладчик. Однако вы можете легко передать управление
              вашему  текстовому  редактору,  выбрав  глобальную команду
              Edit (Редактирование) окна File (Файл) (о локальных коман-

который задается с  помощью  программы 


              дах  рассказывается далее).  Турбо отладчик использует ре-
              дактор,  который задается с  помощью  программы  установки
              TDINST. Если в вас имеется компилятор Borland C++, то мож-
              но использовать для запуска Турбо отладчика из  интегриро-
              ванной  интерактивной  среды программирования Турбо языков
              новое средство передачи (Transfer).
            - Турбо  отладчик не может перекомпилировать вашу программу.
              Для этого вам нужен компилятор  (например,  Турбо  Паскаль
              или Borland C++).
            - Турбо  отладчик не сможет заменить процесс обдумывания. Во
              время отладки вашим главным инструментом  является  мысль.
              Турбо  отладчик является мощным средством,  но при отсутс-
              твии ее он не экономит ни время, ни усилия.
                       Как работает Турбо отладчик
       -----------------------------------------------------------------
            Турбо отладчик TDW обеспечивает вас всеми мощными и сложными
       средствами, сохраняя при этом простоту в использовании.
            В TDW  мощность  и  расширенный набор средств сопровождается
       превосходной операционной средой. о которой подробнее рассказыва-
       ется в следующем разделе.
                         Достоинства Турбо отладчика
       ------------------------------------------------------------------
            Мы надеемся, что начав использовать Турбо отладчик, вы скоро
       не сможете без него обойтись.  Турбо отладчик специально разраба-
       тывался настолько простым и удобным,  насколько это возможно. Для
       достижения этой цели в него были заложены  следующие возможности:
            - Удобная и логичная система глобального меню.
            - Контекстно-зависимые локальные меню,  которые практически
              делают ненужным запоминание и ввод команд.

       TDeb 3.0 #1-3                = 30 =
            - Диалоговые окна,  в которых вы можете выбирать, устанавли-

чик предоставляет вам сохраненный список 


              вать и переключать параметры, а также вводить информацию.
            - Когда вам надо ввести что-либо с клавиатуры,  Турбо отлад-
               чик предоставляет вам сохраненный список  текстов, которые
              вы уже вводили в подобных ситуациях. Вы можете выбрать лю-
              бой текст из этого списка,  отредактировать его или ввести
              новый текст.
            - Полная  поддержка  макрокоманд,  позволяющая ускорить ввод
              последовательности команд или нажатий клавиш.
            - Копирование и вставка между окнами и диалоговыми окнами.
            - Удобное и полное управление окнами.
            - Поддержка устройства "мышь".
            - Доступ к нескольким типам интерактивной подсказки.
            - Запись сеанса и выполнение в обратной последовательности.
            В оставшейся части данной главы рассмотрены эти  шесть  осо-
       бенностей пользовательского интерфейса Турбо отладчика.
                           Меню и диалоговые окна
       -----------------------------------------------------------------
            В Турбо отладчике,  как и во многих продуктах фирмы Borland,
       используются удобная система глобальных меню, доступных из строки
       меню, выводимой в верхней части экрана.  За исключением того  мо-
       мента, когда активно диалоговое окно, система меню всегда доступ-
       на.
            Если вам необходимо что либо набрать на клавиатуре, то Турбо
       отладчик сохраняет текст, который вы набрали в подобной ситуации.
       Вы можете выбрать подходящий текст из протокола (списка регистра-
       ции), отредактировать его или ввести новый.
            Турбо отладчик обеспечивает полную поддержку макрокоманд для
       ускорения ввода последовательностей команд и  нажатий  клавиш,  а
       также  полное управление окнами и доступ к нескольким типам спра-
       вочников.
                        Использование главного меню
       -----------------------------------------------------------------

удобную систему меню, которые доступны


            Как и многие продукты фирмы Borland,  Турбо  отладчик  имеет
       удобную систему меню, которые доступны из горизонтального меню на
       верхней строке экрана (основное или главное меню).  Главное гори-
       зонтальное меню доступно всегда,  независимо от того,  какое окно
       активно (т.е.  в каком окне находится курсор).

       TDeb 3.0 #1-3                = 31 =
            Для каждого  пункта (команды) главного меню имеется спускаю-
       щееся меню. С помощью спускающегося меню вы можете:
            - Выполнить команду.
            - Открыть всплывающее меню. Это меню выводится после
              выбора элемента меню, за которым следуется отметка (>).
            - Открыть  диалоговое окно.  Это окно открывается,  когда вы
              выбираете элемент  меню,  за  которым  следует  многоточие
              (...).
                             Использование меню
       -----------------------------------------------------------------
            Существует 4 способа выбора пунктов из главного меню:
            - Нажать F10,  подвести курсор к требуемому элементу меню  и
              нажать клавишу Enter.
            - Нажать клавишу F10 и клавишу с первой буквой элемента меню
              (F, V, R, B, D, O, W, H).
            - Нажать клавишу Alt одновременно с первой  клавишей  пункта
              (элемента) меню (F,  V,  R, B, D, O, W, H) для активизации
              выбранного меню команд.  Например,  в любом месте  системы
              нажатие  клавиш  Alt-F  переместит вас в меню File (Файл).
              Меню Ё (System) будет открыто при нажатии клавиш  Alt-про-
              бел.
            - Выбрать  элемент  (пункт) меню с помощью манипулятора типа
              "мышь" и нажать кнопку.
            Для перемещения по всем меню,  кроме  главного,  используйте
       следующие клавиши:
            Используйте стрелки  вправо/влево  для перемещения от одного
       спускающегося меню к другому (например, когда вы находитесь в ме-

ню File, нажатие стрелки влево


       ню File, нажатие стрелки влево переместит вас в меню View).
            Для перемещения  по  командам  конкретного  меню используйте
       стрелки вверх и вниз.
            Используйте клавиши Home и End для перемещения  к  первой  и
       последней альтернативам (командам) меню, соответственно.
            Для перемещения  в  меню  или  диалоговое окно более низкого
       уровня (всплывающее меню) используется клавиша Enter.
            С этой же целью можно использовать "мышь",  поместив  указа-
       тель на нужную команду и нажав кнопку.
            Выйти из меню или системы меню можно следующим образом:

       TDeb 3.0 #1-3                = 32 =
            - Нажмите клавишу Esc для выхода из меню и возврата в преды-
              дущее меню.
            - Нажимайте клавишу Esc - если вы находитесь в  меню второго
              уровня, это позволяет выйти из системного меню возвратить-
              ся в предыдущее активное окно.
            - F10 для возврата из меню любого уровня в предыдущее актив-
              ное окно.
            - Чтобы  выйти  из системы меню и вернуться в активное окно,
              нажмите в этом окне кнопку "мыши".
            Некоторые команды главного  (основного)  меню  соответствуют
       оперативным  клавишам  (сокращения  команд).  Там,  где возможно,
       обозначения оперативных клавиш изображаются справа от альтернати-
       вы меню.
            Рисунок 13.1 в Главе 13 показывает полное дерево спускающих-
       ся меню для Турбо отладчика TDW. В Таблица 13.1 перечисляются все
       функциональные клавиши.  Перечень всех команд Турбо отладчика TDW
       также приведен в Главе 13.

       TDeb 3.0 #1-3                = 33 =
                              Диалоговые окна
       -----------------------------------------------------------------
            Многие команды Турбо отладчика доступны с помощью диалоговых
       окон. Диалоговое окно может содержать один или более из следующих

бора выходите из диалоговых окон 


       элементов:
       -----------------------------------------------------------------
            -----------¬     Программные   "кнопки"  представляют  собой
            ¦          ¦-    "теневой" текст  (на  монохромных  системах
            ¦          ¦-    он отображается  в  обратном  видеорежиме).
            L------------    Если   вы  выберите   переключатель,  Турбо
              -----------    отладчик немедленно выполнит соответствующее
                             щее действие.  Для подтверждения вашего вы-
                             бора выходите из диалоговых окон  с помощью
                             "кнопки"   с  отметкой  OK.  Для  отмены  -
                             Cancel.  Диалоговые окна содержат также пе-
                             реключатель  (функциональную  кнопку) Help,
                             по которому выводится  справочная  информа-
                             ция.  Вместо "кнопки" OK можно использовать
                             оперативные клавиши Alt-K.
            [X]              Многопозиционные    переключатели    (блоки
                             проверки) - это переключатели, работающие в
                             режиме "включено/выключено". Их можно выби-
                             рать  для  включения/выключения  параметра.
                             При включенном состоянии в квадратных скоб-
                             ках появляется X: [X].
            ( )              Селективные    переключатели      позволяют
            (.)              выбрать одну из нескольких  установок.  При
            ( )              этом в круглых  скобках  появляется  жирная
                             точка.
            -------------¬   Рамки (окна) ввода выводятся для того, что-
            ¦_           ¦   бы вы могли  ввести  строку в ответ на под-
            L-------------   сказку. С окном (рамкой) подсказки связыва-
                             ется обычно протокол ввода.

Окна списка  содержат список элементов,


          ---------------¬   Окна списка  содержат список элементов, из
          ¦ THISFILE.EXE ¦   которых вы можете сделать выбор (например,
          ¦-THATFILE.EXE-¦   мер, список  файлов,  которые  нужно  отк-
          ¦ TOTHERTL.EXE ¦   крыть).
          L---------------
       ----------------------------------------------------------------
            Перемещаться по диалоговым окнам можно с помощью  клавиш Tab
       и Shift-Tab. Для выбора нужного элемента или "кнопки" используйте
       клавиши стрелок, затем нажмите клавишу Enter.
            Для этой цели можно также использовать  "мышь".  Для  выбора
       диалогового окна переместите указатель в его верхних левый угол и
       нажмите кнопку "мыши".

       TDeb 3.0 #1-3                = 34 =
            Элементы можно  также  выбирать с помощью оперативных клавиш
       (подсвеченная буква в каждой команде).
                         Контекстно-зависимая работа
       -----------------------------------------------------------------
            В дополнение к удобной системе  Borland  спускающихся  меню,
       Турбо  отладчик имеет достоинства,  которые уменьшают возможность
       ошибки и сокращают процесс изучения путем  сокращения  последова-
       тельности меню.
            Для понимания  этих  возможностей  вы должны запомнить,  что
       Турбо отладчик является  контекстно-зависимой  программой.  Турбо
       отладчик запоминает, какое окно вы открыли, какой текст выбрали и
       в какой части окна находится курсор.  Другими словами,  он  точно
       знает, на  что  вы смотрите и где находится курсор при выборе ко-
       манды.  Он использует эту информацию при реагировании на вашу ко-
       манду.  Рассмотрим  пример для иллюстрации этого фундаментального
       вопроса.
            Предположим в вашей программе на Паскале есть следующий опе-
       ратор:
               MyCounter[TheGrade] := MyCounter[TheGrade] + 1;
            Как вы  увидите,  при работе с Турбо отладчиком получить ин-

нем массива MyCounter, то Турбо


       формацию о структуре данных достаточно просто:  вам нужно  только
       нажать клавиши Ctrl-I (проверка).  Если курсор находится под име-
       нем массива MyCounter, то Турбо отладчик покажет информацию о со-
       держимом всего массива.  Но если бы вы выбрали  (т.е.  высветили)
       полностью  имя массива плюс индекс и нажали бы клавиши Ctrl-I, то
       отладчик знал бы,  что вы хотите узнать содержимое только  одного
       элемента массива, и вывел бы на экран только один элемент.
            Вы можете так переходить ко все более малым и простым  прог-
       раммным элементам.  Нажатие клавиш Ctrl-I во время просмотра мас-
       сива дает вам представление о некотором элемента массива.

       TDeb 3.0 #1-3                = 35 =
            Этот вид контекстной зависимости делает Турбо отладчик  лег-
       ким в использовании.  Это избавляет от необходимости запоминать и
       набирать на клавиатуре сложные строки команд меню или использова-
       ния клавиш,  подобных командам. Вы перемещаете курсор к элементу,
       содержимое которого хотите определить (или выбираете  его  с  по-
       мощью клавиши Ins) и вызываете команду (например, для просмотра -
       Ctrl-I).  Турбо отладчик наилучшим образом выполняет команду  для
       этого выбранного элемента.
            Контекстная зависимость  облегчающая пользование отладчиком,
       однако затрудняет документирование команд. Так, например, команда
       Ctrl-I в Турбо отладчике не имеет единственного результата,  нао-
       борот,  результат команды зависит от положения курсора и от  выб-
       ранного текста.

       TDeb 3.0 #1-3                = 36 =
                               Локальные меню
       -----------------------------------------------------------------
            Другим  аспектом  контекстной  зависимости  Турбо  отладчика
       TDW  является использование локальных меню (в зависимости от обс-
       тоятельств).
            Локальные меню в Турбо отладчике TDW настроены на конкретное

в которой вы находитесь. Очень


       окно или область,  в которой вы находитесь. Очень важно не путать
       локальные меню с глобальными меню (однако при реальной  работе  в
       TDW оба типа меню никогда одновременно не выводятся).
       ----------------------------------------------------------------¬
       ¦Ё File Edit -View- Run Breakpoint Data Option Window  Help MENU¦
       ¦-- Module--------------------------¬ 181-------------1-[ ][ ]¬ ¦
       ¦¦  type  ¦Breakpoints--------------¦                        ^¦ ¦
       ¦¦    Parm¦Stack                    ¦                        -¦ ¦
       ¦¦    Parm¦Log                      ¦                        -¦ ¦
       ¦¦      Pa¦Watches                  ¦<- глобальное меню      -¦ ¦
       ¦¦      He¦Variables                ¦                        -¦ ¦
       ¦¦    end;¦Module...          F3    ¦                        -¦ ¦
       ¦¦  var   ¦File...                  ¦       -------------¬   -¦ ¦
       ¦¦    Head¦CPU                      ¦       ¦--Inspect---¦   -¦ ¦
       ¦¦    i:  ¦Dump                     ¦       ¦  Watch     ¦   -¦ ¦
       ¦¦    s:  ¦Registers                ¦       ¦------------¦   -¦ ¦
       ¦¦> begin ¦Numeric processor        ¦       ¦  Module    ¦   -¦ ¦
       ¦¦    Head¦Execution history        ¦       ¦  File...   ¦   -¦ ¦
       ¦¦    for ¦Hierarchy                ¦       ¦------------¦   -¦ ¦
       ¦¦    begi¦Windows messages         ¦       ¦  Previous  ¦   -¦ ¦
       ¦¦      { ¦Clipboard                ¦       ¦  Line...   ¦   -¦ ¦
       ¦¦      s:¦Another                 >¦       ¦  Search... ¦   -¦ ¦
       ¦¦        L--------------------------       ¦  Next      ¦   v¦ ¦
       ¦¦<--------------------локальное
меню ->----¦  Origin    ¦-->-¦ ¦
       ¦L------------------------------------------¦  Goto...   ¦----- ¦
       ¦--Watches----------------------------------¦  Edit      ¦----¬ ¦
       ¦¦                                          L-------------    ¦ ¦

и использованием клавиш со  стрелками 


       ¦L------------------------------------------------------------- ¦
       ¦Alt:F2-BkptF3-CloseF4-BreakF5-UserF6-UndoF7-InstrF8-RtnF9-To...¦
       L----------------------------------------------------------------
            Рис. 2.1 Глобальные и локальные меню
            Сравните следующее:

       TDeb 3.0 #1-3                = 37 =
                               Глобальные меню
       -----------------------------------------------------------------
           - К  глобальным (спускающимся) меню вы получаете доступ нажа-
             тием клавиши F10 и использованием клавиш со  стрелками  или
             набором первой буквы имени меню.
           - Спускающиеся меню доступны всегда и видны в верхней
             строке экрана.
           - Их содержимое никогда не изменяется.
           - Некоторые команды меню могут вызываться нажатием  соответс-
             твующих  функциональных клавиш из любого места Турбо отлад-
             чика TDW.
                               Локальные меню
       -----------------------------------------------------------------
           - К локальным меню вы получаете доступ нажатием клавиш AltF10
             или Ctrl-F10.
           - Положение  и содержимое меню зависит от выбранного текста и
             от положения курсора.
           - Содержимое локального меню может изменяться  (важно  знать,
             что  локальные  команды  появляются почти во всех локальных
             меню,  так что множества команд каждого меню предсказуемо),
             но  даже в этих случаях результат команд с одинаковыми име-
             нами может быть различным в зависимости от контекста.
           - Каждая команда локального меню имеет функциональный эквива-
             лент,  состоящий из нажатия клавиши Ctrl, плюс первой буквы
             команды. Вследствие этого функциональный эквивалент, напри-
             мер,  Ctrl-S,  может  означать в одном контексте одно,  а в
             другом контексте - совершенно другое (как отмечалось выше),

удобной операционной среды Турбо отладчика


             однако  существует соответствие множества команд в последо-
             вательности локальных всплывающих меню.  Например,  команды
             Goto  (Переход)  или Search (Поиск) всегда делают одно и то
             же, даже вызванные из разных мест.

       TDeb 3.0 #1-3                = 38 =
                                  Протоколы
       -----------------------------------------------------------------
            Меню и контекстная зависимость  -  это  только  два  аспекта
       удобной операционной среды Турбо отладчика TDW. Еще одним удобным
       средством являются протоколы (списки регистрации).
            В соответствии с тем представлением,  что пользователь  дол-
       жен набирать на клавиатуре только абсолютно необходимую  информа-
       цию,  Турбо  отладчик TDW сохраняет все,  что вы вводите в рамках
       подсказки,  и выводит этот текст,  когда вы вызываете  эту  рамку
       (окно) подсказки снова.
            Например, чтобы   выполнить   поиск   функции    с    именем
       MyPercentage,  вам придется набирать это слово целиком. Предполо-
       жим затем,  что вы ищете переменную с именем  ReturnOnInvestment.
       Когда  вы теперь увидите окно подсказки,  вы заметите,  что в нем
       появится ReturnOnInvestment.  При поиске другой текстовой  строки
       обе  введенных строки сохраняются.  При последующем использовании
       команды Search (Поиск) этот список будет расти.
            Окно ввода при поиске может выглядеть следующим образом:
       ----------------------------------------------------------------¬
       ¦   File Edit View Run Breakpoint Data Option Window Help   MENU¦
       ¦--[*]- Module:  TPDEMO File: TPDEMO.PAS 219 ---------1-[ ][ ]¬ ¦
       ¦¦        end                                                ^¦ ¦
       ¦¦    Writeln;                                               -¦ ¦
       ¦¦  end; { ParmsOnHeap }                                     -¦ ¦
       ¦¦                                                           -¦ ¦

представляет собой слово, на которое


       ¦¦> begin { program }                                        -¦ ¦
       ¦¦    Init;                                                  -¦ ¦
       ¦¦    Buffer := GetLine;                                     -¦ ¦
       ¦¦    while Buffer <> '' do                                  -¦ ¦
       ¦¦    begin                                                  -¦ ¦
       ¦¦      ProcessLine(Buffer);                                 -¦ ¦
       ¦¦      Buffer := --[*]---Enter search string-----¬          -¦ ¦
       ¦¦    end;        ¦ GetLine                      ^¦          -¦ ¦
       ¦¦    ShowResults;¦ NumLetters                   -¦          -¦ ¦
       ¦¦    ParmsOnHeap;¦ IsLetter                     -¦          -¦ ¦
       ¦¦ end.           ¦ NumLines                     -¦          -¦ ¦
       ¦¦                ¦                              -¦          v¦ ¦
       ¦¦<---------------¦                              v¦--------->-¦ ¦
       ¦L----------------¦ OK         Cancel      Help   ¦------------ ¦
       ¦--Watches--------¦                               ¦-----------¬ ¦
       ¦¦                L--------------------------------           ¦ ¦
       ¦L------------------------------------------------------------- ¦
       ¦-Enter-item-promted-for-in-dialog-title------------------------¦
       L----------------------------------------------------------------
            Рис. 2.2 Протокол в окне ввода
                 Примечание: Первый  элемент  в  списке  поиска   всегда

       TDeb 3.0 #1-3                = 39 =
            представляет собой слово, на которое указывает курсор в окне
            Module (Модуль).
            Для перемещения по протоколу можно использовать  стрелки или
       "мышь". Чтобы начать поиск,  нажмите клавишу Enter. При использо-
       вании записи из протокола она копируется в вершину списка.
            Можно также редактировать записи.  Для этого можно использо-
       вать клавиши стрелок,  переместив курсор  в подсвеченный текст, и

и изменить это имя на


       отредактировать строку обычным образом.  При редактировании можно
       использовать клавиши Del или Backspace.  Например, вы можете выб-
       рать MyPercentage и изменить это имя на HisPercentage, вместо то-
       го, чтобы целиком вводить новый текст.  Если вы начинаете вводить
       новый элемент,  когда запись подсвечена, то старая запись затира-
       ется.
            В протоколе содержится последние 10 строк, которые вы вводи-
       ли (это  число  можно  изменить  с  помощью  программы  установки
       TDINST).
            Для большинства окон ввода Турбо отладчик  хранит  отдельный
       протокол. Таким образом, вводимый вами при выполнении перехода на
       отдельную метку или строку текст не забивает окно.
                       Автоматическое дополнение имени
       -----------------------------------------------------------------
            Когда вам дается приглашение на ввод текста в  блоке  ввода,
       вы можете ввести только часть имени идентификатора в программе, а
       затем нажать клавиши Ctrl-N.
                 Предупреждение: Когда в верхнем правом углу экрана  по-
            является слово READY... с тремя точками в конце, это означа-
            ет,  что происходит сортировка таблицы имен идентификаторов.
            Ctrl-N  не  будет работать до тех пор,  пока не исчезнут три
            точки,  что означает готовность таблицы имен идентификаторов
            к использованию для автоматического дополнения имен.
            - Если введено достаточно символов для однозначной идентифи-
              кации имени, Турбо отладчик дополняет имя.
            - Если введенная вами часть имени не принадлежит  ни  одному
              из известных имен идентификаторов, ничего не происходит.
            - Если  введенное  вами соответствует более чем одному имени
              идентификатора, то выводится список таких имен, из которо-
              го вы можете выбрать желаемое.
                         Расширение по соответствию

в списке файлов или каталогов 


       -----------------------------------------------------------------
            Для нахождения записей в списке файлов или каталогов  диало-
       гового окна  Турбо отладчик позволяет выполнять расширение по со-

       TDeb 3.0 #1-3                = 40 =
       ответствию. Начните вводить имя файла или  каталога.  Если  Турбо
       отладчик найдет  в  списке такой файл,  строка подсветки перемес-
       титься на это имя,  как только вы  введете  достаточно  символов.
       После этого можно просто выбрать "кнопку" OK.
                            Создание макрокоманд
       -----------------------------------------------------------------
            Когда вы обнаружите, что выполняете повторяющуюся последова-
       тельность действий,  задайте  себе  вопрос:  а не стоит ли задать
       макрокоманду?
            Макрокоманды - это просто определяемые вами оперативные кла-
       виши. Вы  можете присвоить последовательность команд Турбо отлад-
       чика и нажатий клавиш одной клавише и повторять потом ваши  дейс-
       твия.
                 Примечание: О том, как определить макрокоманду, расска-
            зывается в Главе 4.

       TDeb 3.0 #1-3                = 41 =
                            Окна Турбо отладчика
       -----------------------------------------------------------------
            Сегодня многие программные продукты работают  с  окнами,  но
       Турбо  отладчик  делает это лучше.  Турбо отладчик выводит в меню
       (локальных и глобальных) всю информацию и данные, работает с диа-
       логовыми  окнами  (которые используются для задания или ввода ин-
       формации) и другими окнами.  В Турбо отладчике используется  мно-
       жество  различных  типов окон.  Тип окна зависит от того,  какого
       рода информацию он содержит. Открывать и закрывать все окна можно
       с помощью команд меню (или соответствующих им сокращений - опера-
       тивных клавиш).  Большинство окон Турбо отладчика (15 типов окон)

Перечислим типы окон, которые вы


       выводятся из меню View (Обзор).  Другой класс окон, который назы-
       вается окнами проверки (Inspector), выводится при выборе элемента
       меню  Data¦Inspect  (Данные¦Проверка) или команды локального меню
       Inspect.
                               Окна меню View
       -----------------------------------------------------------------
            Перечислим типы окон, которые вы можете открыть из меню View
       (Обзор).
                                  ---------------------¬
            Точки останова        ¦ Breakpoints        ¦
            Стек                  ¦ Stack              ¦
            Регистрация           ¦ Log                ¦
            Выражения просмотра   ¦ Watches            ¦
            Переменные            ¦ Variables          ¦
            Модуль                ¦ Module...       F3 ¦
            Файл                  ¦ File...            ¦
            ЦП                    ¦ CPU                ¦
            Дамп                  ¦ Dump               ¦
            Регистры              ¦ Registers          ¦
            Сопроцессор           ¦ Numeric processor  ¦
            Протокол выполнения   ¦ Execution history  ¦
            Иерархия              ¦ Hierarchy          ¦
            Сообщения
Windows     ¦ Windows messages   ¦
            "Карман"              ¦ Clipboard          ¦
            Другое                ¦ Another           >¦
                                  L---------------------
            Когда вы открываете одно (или более) из этих окон,  их можно
       перемещать, менять размер,  закрывать и выполнять другие операции
       с помощью команд меню Window (Окно) и Ё (System - Система), о ко-
       торых рассказывается в разделе "Работа с окнами".

       TDeb 3.0 #1-3                = 42 =
                                 Окно Module
       -----------------------------------------------------------------
            В окне  Module  (Модуль) на экран выводится код отлаживаемой

Вы можете перемещаться по этому


       программы. Вы можете перемещаться по этому модулю и просматривать
       данные и код,  позиционирую курсор на именах переменных программы
       и давая соответствующие команды локальных меню.
            В окне Module вы вероятно будете проводить  больше  времени,
       чем в окнах других типов, поэтому стоит потратить время и изучить
       различные команды локальных меню, доступных для этого типа окна.
            Для того, чтобы открыть окно Module, можно также нажать кла-
       вишу F3.
                 Примечание: Более подробно об окне Module и его  коман-
            дах рассказывается в Главе 8.
                                 Окно Wathes
       -----------------------------------------------------------------
            В окне Wathes (Просмотр),  которое называют также окном наб-
       людения, выводятся  переменные и их изменяющиеся значения.  Нажав
       клавиши Ctrl-W при позиционировании курсора на имени переменной в
       окне Module (Модуль), вы можете добавить в окно Watches новую пе-
       ременную.
                 Примечание: Подробнее об окне Watches  рассказывается в
            Главе 6.
                              Окно Breakpoints
       -----------------------------------------------------------------
            В окне  Breakpoints (Точки останова) выводятся установленные
       вами точки останова.  Точка останова определяет то место в  вашей
       программе, где остановлено выполнение программы.  При этом вы мо-
       жете проверить состояние программы. В левой области окна перечис-
       ляются позиции в программе каждой точки останова  (или  показано,
       что это глобальная точка останова). В правой области данного окна
       показаны условия,  при которых срабатывает текущая (подсвеченная)
       точка останова.
            Используйте данное окно для изменения, удаления или добавле-
       ния точек останова.
                 Примечание: Полное описание данного типа окна  и работы

этом внизу указаны самые первые


            с точками останова приводится в Главе 7.
                                 Окно Stack
       -----------------------------------------------------------------
            В окне  Stack (Стек) выводится текущее состояние стека.  При

       TDeb 3.0 #1-3                = 43 =
       этом внизу указаны самые первые вызовы функций (в  программах  на
       языке Си и C++ это функция main), а затем - все последующие вызо-
       вы в том порядке, как они выполнялись.
            Вы можете проверить исходный код  любой  указанной  в  стеке
       функции, переведя на нее подсветку и нажав клавиши Ctrl-I.
            Подсветив имя функции в стеке и нажав клавиши Ctrl-I, вы от-
       крываете окно Variables (Переменные),  в котором выводятся  пере-
       менные,  глобальные относительно программы, переменные, локальные
       относительно функции, и аргументы вызова функции.
                 Примечание: Более детально об окне Stack рассказывается
                             в Главе 5.
                                  Окно Log
       -----------------------------------------------------------------
            В окне  Log  (Регистрация)  выводится  содержимое  протокола
       (списка) регистрации сообщений.  Протокол содержит пролистываемый
       список сообщений и информацию, сгенерированную при вашей работе с
       Турбо отладчиком. Там сообщается, например, о том, почему остано-
       вилась ваша программа,  о результатах срабатывания точек останова
       и содержимом окон,  которые вы сохранили в протоколе регистрации.
            Окно Log можно использовать для получения информации об  ис-
       пользовании памяти и модулях прикладной программы Windows.
            Данное окно позволяет вам вернуться назад и  посмотреть, что
       привело к текущему состоянию.
                 Примечание: Более подробно об окне Log рассказывается в
                             Главе 7.
                               Окно Variables
       -----------------------------------------------------------------

в данной точке вашей программы.


            В окне Variables (Переменные) выводятся переменные,  доступ-
       ные в данной точке вашей программы. В верхней области окна содер-
       жатся глобальные переменные.  В нижней области показаны  перемен-
       ные, локальные  по  отношению  к текущей функции или модулю (если
       они есть).
            Данное окно полезно  использовать,  когда  вы  хотите  найти
       функцию или  переменную и знаете,  с каких символов начинается ее
       имя (например,  "abc"),  но  не помните точного имени.  Вы можете
       войти в область глобальных идентификаторов данного окна  и быстро
       найти то, что вам требуется.
                 Примечание: Подробнее окно Variables описывается в Гла-
                             ве 5.
                                  Окно File
       -----------------------------------------------------------------
            В окне  File (Файл) выводится содержимое файла на диске.  Вы

       TDeb 3.0 #1-3                = 44 =
       можете просматривать содержимое  файла  в  виде  непосредственных
       шестнадцатиричных байт или в виде кода ASCII (текстовый вид).  Вы
       можете выполнить поиск конкретного текста  или последовательности
       байтов, а также непосредственно скорректировать любую часть файла
       на диске.
            Это средство полезно использовать, если вы отлаживаете прог-
       рамму, использующую файлы на диске,  и хотите изменить содержимое
       программы,  изменив  содержимое одного из ее файлов.  Можно также
       исправить ошибку в содержимом файла, либо проверить файл, создан-
       ный программой, чтобы убедиться в правильности его содержимого.
                 Примечание: Более  подробно об этом окне рассказывается
            в Главе 7.
                                  Окно CPU
       -----------------------------------------------------------------
            Окно CPU (ЦП) показывает текущее состояние центрального про-
       цессора (ЦП).

Это окно содержит пять областей,


Это окно содержит пять областей, в одной из которых
       показаны шестнадцатиричные байты данных, в другой выводится в не-
       посредственном виде (шестнадцатиричные байты) содержимое стека, в
       третьей -  содержимое  регистров ЦП,  в четвертой - машинные инс-
       трукции, а в пятой - содержимое флагов ЦП.
            Если вы используете TDW,  то в окне CPU выводится шестая об-
       ласть, в  которой показываются селекторы памяти защищенного режи-
       ма.
            Окно CPU полезно использовать,  когда вы хотите  просмотреть
       точную последовательность инструкций, которую образует строка ис-
       ходного кода программы,  или структуру данных.  Если вы знакомы с
       кодом Ассемблера,  это  может  помочь  вам выявить трудноуловимые
       ошибки. Однако для отладки большинства программ данное  окно  вам
       не понадобиться.
            Иногда Турбо отладчик открывает окно CPU автоматически, если
       ваша программа останавливается на инструкции  в  середине  строки
       исходного кода.
                 Примечание: Окно CPU и отладка на уровне Ассемблера об-
            суждаются подробно в Главе 11.
                                  Окно Dump
       -----------------------------------------------------------------
            В окне  Dump (Дамп) выводится в непосредственном виде содер-
       жимое области памяти.  (Это окно эквивалентно области данных окна
       CPU.) Вы можете выводить данные в виде символов,  шестнадцатирич-
       ных байт,  слов,  двойных слов,  или в любом формате с  плавающей

       TDeb 3.0 #1-3                = 45 =
       точкой. Данное окно можно использовать для просмотра в непосредс-
       твенном виде некоторых данных,  когда вам не требуются  остальные
       части окна CPU. В локальном меню этого окна имеются команды, поз-
       воляющие вам модифицировать выводимые данные,  изменять формат их
       вывода, а также манипулировать блоками данных.
                 Примечание: Более подробно о данном окне рассказывается

в Главе 11 при описании


            в Главе 11 при описании отладки на уровне Ассемблера.
                               Окно Registers
       -----------------------------------------------------------------
            В окне Registers (Регистры) выводится содержимое регистров и
       флагов процессора (ЦП). Данное окно содержит две области, которые
       эквивалентны областям регистров и флагов окна CPU (ЦП).  Это окно
       можно использовать,  когда вам нужно просмотреть  содержимое  ре-
       гистров,  и вас не интересует прочая информация о состоянии цент-
       рального процессора. Значение любого регистра или флага можно из-
       менить с помощью команды локального меню.
                 Примечание: Более  углубленно о данном окне рассказыва-
            ется в Главе 11,  где описывается отладка на уровне  Ассемб-
            лера.
                           Окно Numeric Processor
       -----------------------------------------------------------------
            В окне  Numeric Processor (Арифметический сопроцессор) выво-
       дится текущее состояние арифметического  сопроцессора.  Это  окно
       содержит три области. В одной из областей показывается содержимое
       регистров с плавающей точкой,  в другом выводятся значения  флага
       состояния, а в третьей - значения управляющих флагов.
            Данное окно может помочь вам выявить ошибки в программе, ра-
       ботающей с числами с плавающей точкой.  Вы должны иметь углублен-
       ное представление о внутренней работе математического сопроцессо-
       ра. Только в этом случае данное окно принесет вам пользу.
                 Примечание: Более  подробно  о  работе  с окном Numeric
            Processor рассказывается в Главе 12.
                           Окно Execution History
       -----------------------------------------------------------------
            В окне Execution History (Протокол выполнения) выводится код
       Ассемблера и и исходные строки вашей программы, вплоть до послед-

Выполняете вы трассировку или выполнение


       ней выполняемой строки.  Верхняя область содержит выполненный код
       Ассемблера (вы можете пройти его повторно).  В нижней области вы-
       водится следующее:
            1. Выполняете вы трассировку или выполнение по шагам.
            2. Строка  исходного кода для следующей выполняемой инструк-

       TDeb 3.0 #1-3                = 46 =
               ции.
            3. Номер строки исходного кода.
            Вы можете анализировать содержимое данного окна или  исполь-
       зовать его для выполнения вашей программы до конкретной точки.
                 Примечание: Подробнее об окне Execution History расска-
            зывается в Главе 5.
                               Окно Hierarchy
       -----------------------------------------------------------------
            В окне Hierarchy (Иерархия) выводится дерево  иерархии  всех
       объектов или типов классов,  используемых в текущем модуле.  Окно
       содержит две области. Одна область используется для вывода списка
       типов объектов/классов.  Другая - для вывода дерева иерархии объ-
       ектов/классов. (Если  вы выполняете отладку программ на языке С++
       с множественным наследованием,  то открывается также третье окно,
       где показывается порождающий класс для данного типа классов.)
            Данное окно показывает вам взаимосвязь объектов или классов,
       используемых в текущем модуле.  Оно также позволяет вам проверить
       любой объект или тип класса,  а также являющиеся его компонентами
       поля данных или элементы и методы или функции-элементы (для этого
       используются команды локального меню).
                 Примечание: Подробнее  о  данном  окне рассказывается в
            Главе 10.
                  Окно сообщений Windows (Windows Messages)
       -----------------------------------------------------------------
            Это окно выводит список сообщений, передаваемых между окнами
       в вашей прикладной программе для Microsoft Windows.

правая область показывает тип отслеживаемых


Это окно име-
       ет три области:
            - левая область показывает,  для каких процедур или логичес-
              ких номеров вы отслеживаете сообщения;
            - правая область показывает тип отслеживаемых сообщений.
            - в нижней области отображаются сами сообщения.
                 Примечание: Использование средств окна Windows Messages
            описано в Главе 17.
                               Окно Clipboard
       -----------------------------------------------------------------
            В этом окне выводятся элементы,  которые забраны в буфер вы-
       резанного изображения ("карман"), показаны их типы. Это позволяет
       проверить или удалить элемент и сохранить в "кармане" любое  зна-

       TDeb 3.0 #1-3                = 47 =
       чение элемента.
            Подробнее об окне Clipboard рассказывается ниже.

       TDeb 3.0 #1-3                = 48 =
                               Окна-дубликаты
       -----------------------------------------------------------------
            Вам предоставляется  также возможность открыть дубликаты для
       трех типов окон - Dump,  File или Module. Это можно сделать с по-
       мощью выбора пункта меню View¦Another (Просмотр¦Другое).
                                   -------------------¬
                        Модуль     ¦ Module...        ¦
                        Дамп       ¦ Dump             ¦
                        Другое     ¦ File...          ¦
                                   L-------------------
            Это позволяет  вам  отслеживать несколько отдельных областей
       для кода  Ассемблера,  различных  используемых  или  генерируемых
       программой файлов, или нескольких модулей разных программ  однов-
       ременно.
            Не беспокойтесь о том, если вдруг Турбо отладчик сам откроет
       одно из этих окон.  В некоторых случаях он будет делать это в от-
       вет на команду.
                             Экран пользователя

это экран вывода вашей программы.


       -----------------------------------------------------------------
            Экран пользователя  - это экран вывода вашей программы. Этот
       экран будет иметь точно такой же вид, какой он имел бы при выпол-
       нении вашей  программы  без  Турбо отладчика (непосредственно под
       DOS).
            Вы можете использовать данный экран для того,  чтобы  прове-
       рить, что  выводит  ваша программа,  и соответствует ли это тому,
       что должно быть на экране.  Для переключения в экран пользователя
       выберите пункт меню Window¦User Screen (Окно¦Экран пользователя).
       После просмотра экрана пользователя  нажмите  любую  клавишу  для
       возврата обратно в экран отладчика.
                 Примечание: Клавиша Alt-F5 - это  оперативная  клавиша,
            которая позволяет  переключаться между операционной средой и
            экраном пользователя.
                                Окно проверки
       -----------------------------------------------------------------
            В окне  Inspector (Проверка) выводится текущее значение выб-
       ранной переменной.  Его  можно  открыть,  выбрав в локальном меню
       пункт (команду) Data¦Inspect (Данные¦Проверка). Обычно данное ок-
       но  выбирается  с  помощью нажатия клавиши Esc или кнопки "мыши".
       Если вы откроете последовательно  несколько  окон  проверки  (что
       часто происходит при  проверке сложных структур данных),  то уда-
       лить все окна проверки можно с помощью клавиш Alt-F3  или команды
       Window¦Close (Окно¦Закрытие).

       TDeb 3.0 #1-3                = 49 =
            Вы можете открыть окно  Inspector  для  просмотра  элементов
       массива или содержимого переменной или выражения.  Число областей
       в окне зависит от характера проверяемых вами данных. Окно провер-
       ки адаптируется  к тому типу данных,  который выводится на экран.
       Оно может поддерживать не только  простые  скалярные  типы  (int,

и указатели, массивы, записи, структуры


       float и т.д.),  но и указатели, массивы, записи, структуры и объ-
       единения. Каждый тип элементов данных выводится в таком виде, ко-
       торый максимально соответствует использованию его в исходном коде
       программы.
            Дополнительные окна проверки можно создать просто  с помощью
       выбора команды Inspect (Проверка),  в то время как дополнительные
       окна Module,  File или CPU можно создать только,  выбрав  элемент
       (команду) меню View¦Another (Обзор¦Другое окно).

       TDeb 3.0 #1-3                = 50 =
                                Активное окно
       -----------------------------------------------------------------
            Хотя в Турбо отладчике  допускается  открывать  одновременно
       много окон,  активным может быть только одно окно.  Активное окно
       соответствует следующим критериям:
            - Активное окно имеет двойную рамку, а не одинарную.
            - Активное окно содержит курсор или строку подсветки.
            - Если окна перекрываются, активное окно находится перед ни-
              ми (первое окно).
            Когда вы даете команды,  вводите текст  или  "прокручиваете"
       содержимое окна, это влияет только не текущее окно и не влияет на
       другие открытые окна.
       -------------------------------------------------------------------¬
       ¦Ё  File Edit View Run Breakpoint Data Option Window Help      MENU¦
       ¦------ Module:  TPDEMO File: TPDEMO.PAS 219 ---------1----------¬ ¦
       ¦¦        end ------- Stack ------5--------¬                     ¦ ¦
       ¦¦    Writeln;¦ TPDEMO                     ¦                     ¦ ¦
       ¦¦  end; { Par¦   ------ Log -------------------4----¬           ¦ ¦
       ¦¦            ¦   ¦                                  ¦           ¦ ¦
       ¦¦> begin { pr¦   ¦                                  ¦           ¦ ¦
       ¦¦    Init;   ¦   ¦                                  ¦           ¦ ¦

Buffer :L


       ¦¦    Buffer :L---¦                                  ¦           ¦ ¦
       ¦¦    whilг==[*]==Dump=================3====[ ][ ]¬  ¦           ¦ ¦
       ¦¦    begi¦ ds: 0000 CD 20 00 A0 00 9A F0 FE = & U*^  ¦           ¦ ¦
       ¦¦      Pr¦ ds:0008 A4 02 D3 01 C5 41 90 01 .^.Ayo-  ¦           ¦ ¦
       ¦¦      Bu¦ ds:0010 C5 41 8D 02 DE 38 D7 2D .Afe!`----           ¦ ¦
       ¦¦    end;¦ ds:0018 01 01 01 00 03 FF FF FF oooo. v              ¦ ¦
       ¦¦    ShowL<------------------------------------>--              ¦ ¦
       ¦¦    ParmsOnHeap;     ^                                         ¦ ¦
       ¦¦ end.                ¦                                         ¦ ¦
       ¦¦                     L------- активное окно                    ¦ ¦
       ¦¦                                                               ¦ ¦
       ¦L---------------------------------------------------------------- ¦
       ¦--Watches-------------------------------------------------------¬ ¦
       ¦¦                                                               ¦ ¦
       ¦L---------------------------------------------------------------- ¦
       ¦Alt:F2-BkptF3-ClF4-BackF5-UserF6-UndoF7-InstrF8-RtnF9-ToF1-Local  ¦
       L-------------------------------------------------------------------
            Рис. 2.3 Активное окно
                            Что выводится в окне?
       -----------------------------------------------------------------
            Окно всегда содержит большинство из следующих элементов, ко-
       торые  дают  вам  информацию  об окне и позволяют выполнить в нем
       различные действия.

       TDeb 3.0 #1-3                = 51 =
            пиктограммы переключения и переформатирования окна -----¬
                                                                    ¦
          -пиктограмма -- заголовок           номер окна -----¬     ¦
          ¦  закрытия  ¦                                      ¦     ¦
          v            v                                      v     v

если окно содержит информацию, которая


       г=[*]==Module: TCDEMO File: tcdemo.c (modified) 31=====1=[ ][ ]=¬
       ¦   static void showargs(int argc, char *argv[]);               ^
       ¦                                                               -
       ¦   /* program entry point                                      -
       ¦      */                                                       -
       ¦>  int main(int argc, char **argv) {                           -
       ¦       unsigned int nlines, nwords, wordcount;                 -
       ¦       unsigned long totalcharacters;                          -
       ¦                                        полоса
прокрутки ----->-
       ¦       nlines = 0;                                             -
       ¦       nwords = 0;                                             -
       ¦       totalcharacters = 0;                                    -
       ¦       showargs(argc, argv);                                   -
       ¦       while (readline() != 0) {                               v
       ¦             wordcount = makeintowords(buffer);                ¦
       L<------------------------------------------------------------->-
            ^                                                          ^
            ¦                                                          ¦
            L------ полоса "прокрутки"            изменение размера ----
            Рис. 2.4 Типичное окно
            В окне можно видеть:
            - Контур (рамку) окна (рамка двойная,  если окно активное, и
              одинарная в противном случае).
            - Заголовок, расположенный в левой верхней части окна.
            - полоса  "прокрутки"  (справа и внизу) выводится в том слу-
              чае, если окно содержит информацию, которая не вмещается в
              текущее поле окна.  Перемещать информацию в окне с помощью
              полосы "прокрутки" можно,  используя "мышь".
                 а) Щелкните кнопкой "мыши", переместив указатель на ко-

Для перемещения одного из размеров


                    нец полосы "прокрутки" (со стрелкой).  Этим вы пере-
                    местите изображение в заданном направлении  на  одну
                    позицию.
                 б) Для перемещения одного из размеров окна  в  заданном
                    направлении  щелкните кнопкой мыши,  переведя указа-
                    тель в "серую" область полосы "прокрутки".
                 в) Перемещайте рамку прокрутки настолько и том  направ-
                    лении, как это необходимо.
            - В  нижнем  левом углу окна находится пиктограмма изменения

       TDeb 3.0 #1-3                = 52 =
              размера.  "Зацепив" ее с помощью "мыши" и перемещая, можно
              сделать окно больше или меньше.
            - Номер окна в левом верхнем углу отражает порядок,  в кото-
              ром было открыто окно.
            - В правой верхней части окна находятся пиктограммы переклю-
              чения и переформатирования окна.  Пиктограмма переключения
              (слева) позволяет вам с помощью  "мыши"  увеличить  размер
              окна до всего поля экрана,  восстановить предыдущий размер
              окна,  а рамка переформатирования -  изменить  его  размер
              (пропорционально). Для выполнения этих функций нужно уста-
              новить на одну из пиктограмм указатель "мыши"  и  щелкнуть
              кнопкой.
            - В  вернем  левом  углу окна находится пиктограмма закрытия
              окна.  Для закрытия окна нужно установить на нее указатель
              мыши и щелкнуть кнопкой.
                               Работа с окнами
       -----------------------------------------------------------------
            При наличие такой развитой системы окон вы,  вероятно, захо-
       тите открыть на экране одновременной несколько окон. Турбо отлад-
       чик позволяет  вам  легко  переходить  из  одного  окна в другое,

перемещать их, открывать их одно


       перемещать их, открывать их одно за другим, сжимать их или расши-
       рять, а также закрывать.
            Большинство команд   управления  окнами  содержится  в  меню
       Windows (Окна). Еще несколько команд можно найти в системном меню
       Ё (System).  Это  меню  отмечено символом Ё в левой чести верхней
       строки меню.
                 Примечание: Для  того,  чтобы  открыть  системное меню,
            нажмите клавиши Alt-пробел или Alt-W.
                      Переход от одного окна к другому
       -----------------------------------------------------------------
            Каждое открываемое вами окно содержит номер в верхнем правом
       углу. Обычно,  окно  Module  (Модуль) - это окно номер 1,  а окно
       Watches (Просмотр) - это окно номер 2.  Следующему окну,  которое
       вы откроете, будет присвоен номер 3, и т.д.
            Эта система  нумерации  предоставляет  вам быстрое и простое
       средство перемещения от одного окна к другому.  Вы можете  с  по-
       мощью клавиши Alt в сочетании с номером окна сделать активным лю-
       бое из первых 9 окон. Например, при нажатии клавиш Alt-2 активным
       станет окно Watches.  При этом любая выбираемая далее команда бу-
       дет влиять на данное окно и на элементы в нем.

       TDeb 3.0 #1-3                = 53 =
            Вы можете также циклически переходить от окна  к  окну,  ис-
       пользуя команду меню Window¦Next (Окно¦Следующее) или оперативную
       клавишу F6.  Это удобно использовать, если номер окна скрыт, и вы
       не знаете, какую цифру использовать для перехода к нему.
            Кроме того, для активизации окна можно использовать "мышь".
            Для вывода  списка всех открытых окон выберите в строке меню
       команду Window (Окно).  В нижней части меню Window выводится до 9
       открытых окон, из которых вы можете сделать выбор.
            Если у вас открыто более 9 окон,  можно использовать команду