
Приложение E
Удаленная отладка
-----------------------------------------------------------------

     Возможности удаленной   отладки,  обеспечиваемые  отладчиком
Turbo  Debugger,  отличаются  от  тех,  которые   предоставляются
другими  отладчиками.  Другие отладчики главным образом позволяют
управлять самим отладкой с удаленной системы; при этом отладчик и
отлаживаемая  программа находятся на одной и той же системе. Если
для отлаживаемой программы требуется больше памяти,  чем остается
после  загрузки отладчика,  то при такой отладке могут возникнуть
проблемы. Программа TDREMOTE, поставляемая в составе пакета Turbo
Debugger,  решает подобные проблемы,  позволяя запускать отладчик
Turbo Debugger на одной машине,  а отлаживаемую  программу  -  на
другой машине.

     В данном   приложении  рассказано,  как  отлаживать  большие
программы,  используя второй персональный компьютер, подключенный
к основному персональному компьютеру.

     Прежде всего,  необходимо выяснить,  в каких случаях следует
использовать удаленную отладку. Например, если программа, которую
необходимо  отладить,  не  загружается  после  загрузки отладчика
Turbo Debugger,  то ее можно  рассматривать  как  "кандидата"  на
удаленную отладку.  Если вы получили сообщение "Not enough memory
to load symbol table" (не хватает  памяти  для  загрузки  таблицы
обозначений)  или  сообщение  "Not  enough  memory"  при  попытке
загрузить  программу  для  отладки,   вам   следует   рассмотреть
возможность удаленной отладки.

     Иногда загрузка вашей программы происходит нормально,  но не
хватает памяти для ее нормального выполнения. В этом случае также
может помочь удаленная отладка.

     Если при  отладке  программы  вы  сталкиваетесь  с проблемой
нехватки памяти,  и в вашем компьютере имеется расширенная память
типа  EMS,  убедитесь  в  том,  что она используется для хранения
таблиц обозначений.  С помощью программы TDINST  можно  настроить
Turbo  Debugger  таким  образом,  что он будет либо использовать,
либо не  использовать  расширенную  память  для  хранения  таблиц
обозначений.


Подготовка аппаратных средств для удаленной отладки
-----------------------------------------------------------------

     Для того  чтобы  использовать удаленную отладку,  необходимо
иметь следующее оборудование:

     - компьютер для отладки программ,  имеющий  последовательный
порт;

     - еще  один персональный компьютер с последовательным портом
и  достаточным  объемом  памяти  и  дискового  пространства   для
хранения программы, которую требуется отладить;

     - "нуль-модем"  или  кабель  от принтера для соединения двух
компьютеров.

     Убедитесь в  том,  что  кабель,  который  используется   для
соединения    двух    компьютеров,   выбран   правильно.   Нельзя
использовать кабель с "прямым" подключением  проводов.  В  кабеле
должны  быть,  как  минимум,  разделены  линии  передачи и приема
данных. В хорошем магазине вычислительной техники  вам  предложат
все необходимое.

     После того,  как вы выбрали подходящий кабель,  подсоедините
его  к  двум  последовательным  портам.   На   этом   завершается
подготовка аппаратных средств, необходимых для удаленной отладки.

Установка программных средств удаленной отладки
-----------------------------------------------------------------

     Скопируйте на удаленную систему  драйвер  удаленной  отладки
TDREMOTE.EXE. На удаленную систему также необходимо поместить все
файлы,  которые  требуются  для  отлаживаемой  программы.  К  ним
относяться   входные  файлы  данных,  файлы  конфигурации,  файлы
подсказки и т.д.

     Запись файлов  на удаленную  систему можно  осуществить либо  с
помощью дискет,  либо с  помощью программы  пересылки  файлов  TDRF,
описанную в документации на дисках.

     Если хотите,  вы можете поместить на удаленную систему копию
программы,  которую  вы  собираетесь отлаживать.  Это не является
необходимым, поскольку Turbo Debugger будет сам при необходимости
пересылать ее по линии связи.

Установка связи с удаленной системой  ---------------------------

     При запуске   программы   TDREMOTE   на   удаленной  системе
убедитесь в том,  что нужная вам директория является текущей. Это
важно,   поскольку   при   запуске  программа  TDREMOTE  помещает
программу,  которую  вы   собираетесь   отлаживать,   в   текущую
директорию.

     Прежде чем запускать программу TDREMOTE,  определите,  какой
из последовательных портов удаленной системы будет использоваться
для   передачи   данных:  COM1  или  COM2.  Если  вы  используете
последовательный  порт  COM1,  для  запуска  программы   TDREMOTE
введите следующую команду:

     TDREMOTE - rp1 -rs3

     Если вы  используете  последовательный порт COM2,  запустите
программу TDREMOTE следующей командой:

     TDREMOTE - rp2 -rs3

     Обе эти команды активизируют связь с  максимально  возможной
скоростью  (115  Кбод).  Большинство  персональных  компьютеров и
кабелей могут обеспечивать эту скорость.  Позже мы раскажем,  как
устанавливать  меньшую скорость связи,  и вы сможете это сделать,
если у вас возникнут трудности при передачи данных.

     После запуска  программа  TDREMOTE   выдает   сообщение   об
авторских  правах,  а затем сообщает,  что она ожидает,  когда вы
запустите отладчик на другом конце линии связи.  Если  вы  хотите
остановить  работу  программы  и вернуться в DOS,  просто нажмите
клавиши CtrlBreak.

Запуск отладчика Turbo Debugger по линии связи   ----------------

     Для того   чтобы   запустить   Turbo   Debugger   в   режиме
использования   линии   связи,  добавьте  следующие  параметры  в
командную строку, которую вы используете для запуска отладчика из
DOS:

     -  для последовательного порта COM1: -rp1 -rs3;

     -  для последовательного порта COM2: -rp2 -rs3.

     После того,  как связь будет успешно установлена,  на экране
удаленного компьютера появится сообщение "Turbo  Debugger online"
(отладчик  Turbo  Debugger  подключен),  и  на  экране  отладчика
появится  сообщение   "TDREMOTE   online"   (программа   TDREMOTE
подключена).  Затем  это  сообщение будет быстро заменено обычным
окном отладчика.

     Обратите внимание,  что  обе  программы  (TD   и   TDREMOTE)
используют  одинаковые  параметры  для  задания скорости и номера
последовательного порта.  И для обеспечения правильной работы обе
они должны задавать одинаковую скорость передачи данных (параметр
-rs).

     Для отладчика  Turbo  Debugger  имеется  также  параметр  -r
командой  строки,  который  устанавливает  для  связи с удаленной
системой скорость и последовательный порт, заданные по умолчанию.
Если   вы   не   использовали   программу  TDINST  для  изменения
параметров,  заданных по умолчанию,  параметр -r  будет  задавать
порт COM1 и скорость 115000 бод (максимально возможную скорость).

     Ниже приведена  типичная  команда  запуска  отладчика  Turbo
Debugger, которая устанавливает связь с удаленной системой:

     td -rs3 myprog

     Эта команда активизирует связь по  последовательному  порту,
заданному  по  умолчанию  (обычно  COM1)  с  наивысшей  скоростью
передачи  (115  Кбод)  и  загружает  программу  myprog  на   диск
удаленного компьютера, если ее еще там нет.

О загрузке программы на удаленный компьютер
-------------------------------------------

     При загружке  программы  на  диск  удаленной  системы  Turbo
Debugger  проверяет  дату  и  время  создания  копий программы на
локальной системе и на удаленной системе. Если копия на локальной
системе сделана позже,  чем копия на удаленной системе,  отладчик
считает, что вы перекомпилировали и/или перекомпоновали программу
и   посылает  ее  по  линии  связи  на  удаленную  систему.  Если
установлена  максимальная   скорость   передачи,   эта   операция
производится  со скоростью примерно 11К в секунду.  Это означает,
что пересылка программы  размером  60К  займет  около  6  секунд,
поэтому  не  беспокойтесь,  если  при  загрузке  новой  программы
возникнет небольшая задержка.

     Для того чтобы показать, что идет передача данных, на экране
удаленной  системы  ведется  подсчет  байтов  файла  по  мере  их
передачи.

Параметры командной строки программы TDREMOTE   -----------------

     Ниже приведен полный перечень параметров  командной  строки,
поддерживаемых   программой  TDREMOTE.  Перед  параметром  должен
стоять либо знак переноса (-), либо слеш (/).

     -?             Отображает текст подсказки
     -h             Отображает текст подсказки
     -rp1           Порт 1, COM1
     -rp2           Порт 2, COM2
     -rs1           Низкая скорость, 9600 бод
     -rs2           Средняя скорость, 40000 бод
     -rs3           Высокая скорость, 115000 бод
     -w             Записать значения параметров в исполняемый
                    программный файл

     Если запустить программу TDREMOTE без параметров,  она будет
использовать   номер  порта  и  скорость  передачи,  заданные  по
умолчанию,  то есть записанные в  исполняемом  программном  файле
(COM1 и 115000 бод), если вы их не изменяли с помощью параметра -
w.

     Вы можете  сделать  параметры  командной  строки   программы
TDREMOTE  постоянными,  записав  их  обратно  в  исполняемый файл
программы TDREMOTE,  хранящийся на диске.  Чтобы это сделать надо
задать   параметр   -w  вместе  с  другими  параметрами,  которые
требуется  сделать  постоянными.  Затем  программа  запросит  имя
исполняемого  файла.  В  ответ  на  запрос можно ввести новое имя
исполняемого файла,  которого еще не существует.  В  этом  случае
TDREMOTE создаст новый исполняемый файл.

     Примечание: Для   того   чтобы   посмотреть   перечень  всех
параметров   командной   строки,    доступных    для    программы
TDREMOTE.EXE, введите имя программы с параметром -h:


     TDREMOTE -h

     Если вы работаете в операционной системе DOS версии  3.0 или
более  поздней,  запрос  будет  включать маршрут и имя файла,  из
которого вы запускали программу TDREMOTE.  Вы можете  подтвердить
это имя,  нажав клавишу Enter, либо ввести новое имя исполняемого
файла.  Файл с новым именем должен уже  существовать  и  являться
копией программы TDREMOTE, которую вы сделали ранее.

     Если вы работаете в DOS версии 2.х, вы должны будете указать
полный маршрут и имя файла исполняемой программы.

Сеанс удаленной отладки
-----------------------------------------------------------------

     После того как вы запустили программы TDREMOTE и TD в режиме
удаленной отладки,  вы можете отлаживать свою программу почти так
же,  как вы бы это делали,  работая на одном компьютере.  Команды
отладчика работают точно так же, как при обычной отладке, и здесь
нечего изучать.

     Помните, что     поскольку    отлаживаемая    программа    в
действительности работает на удаленной системе,  любой  вывод  на
экран  и ввод с клавиатуры данных для программы осуществляется на
удаленной  системе.  При  работе  на  удаленной  системе  команда
View/User Screen не действует.

     Тип процессора  удаленной  системы  указывается  в заголовке
окна процессора после слова "REMOTE" (удаленный).

     Если во время работы с отладчиком Turbo Debugger  вы  хотите
переслать  файлы  на  удаленную систему,  вы можете выйти в DOS с
помощью команды File/DOS Shell, а затем использовать утилиту TDRF
для управления передачей файлов на удаленную систему. Затем можно
вернуться в отладчик,  введя в командной строке DOS команду exit,
и продолжать отлаживать программу.  Работа программы TDRF описана
в документации, поставляемой на диске.

Сообщения программы TDREMOTE   ----------------------------------

     Ниже приведен перечень сообщений, которые вы можете получить
при работе с программой TDREMOTE.

     nn bytes downloaded
     (Загружено nn байтов)
     Файл передается   на   удаленную   систему.   Это  сообщение
показывает,  как идет процесс пересылки файла.  При  максимальной
скорости  передачи  (115000  бод)  пересылка  идет  со  скоростью
примерно 10К в секунду.

     Can't create file
     (Файл не может быть создан)
     Программа TDREMOTE не может создать файл,  который требуется
переслать.  Это  может  произойти,  либо  если  диск  заполнен до
предела,  либо если имя файла  совпадает  с  именем  существующей
директории.

     Can't modify exe file
     (Файл типа exe не может быть модифицирован)
     Заданный файл,   который   должен   быть  модифицирован,  не
является  достоверной  копией  программы  TDREMOTE.   С   помощью
параметра   -w   можно   модифицировать  только  копии  программы
TDREMOTE.

     Can't open exe file to modify
     (Файл типа EXE не может быть открыт для модификации)
     Файл с  указанным  именем   не   может   быть   открыт   для
модификации.    Возможно   было   введено   имя   неверного   или
несуществующего файла.

     Downloaded complete
     (Загрузка завершена)
     Файл успешно  передан  на   удаленную   систему   программой
TDREMOTE.

     Downloaded failed, write error on disk
     (Загрузка сорвана, ошибка записи на диск)
     Программа TDREMOTE  не  может записать часть принятого файла
на диск.  Это обычно происходит,  когда диск заполнен до предела.
Для того чтобы можно было успешно загрузить файл, следует удалить
с диска несколько файлов.

     Enter program file name to modify
     (Введите имя программного файла для модификации)
     Если вы работаете в DOS версии  3.0  или  более  поздней,  в
запросе  будет  указан  маршрут  и  имя  файла,  из которого была
загружена программа TDREMOTE.  Вы  можете  подтвердить  это  имя,
нажав  клавишу  Enter,  или  ввести новое имя исполняемого файла.
Файл с новым именем должен уже  существовать  и  содержать  копию
программы TDREMOTE, которая была сделана предварительно.

     Interrupted
     (Операция прервана)
     Во время  ожидания  установления  связи с удаленной системой
были нажаты клавиши Ctrl-Break.

     Invalid command line option
     (Недопустимый параметр командной строки)
     При запуске программы TDRF из командной строки DOS был задан
недопустимый параметр командной строки.

     Link broken
     (Связь прервана)
     Работа программы,    взаимодействующей   с   TDREMOTE   была
остановлена, и произошел возврат в DOS.

     Link established
     (Связь установлена)
     Программа на другой системе запущена для связи с TDREMOTE.

     Loading program "name" from disk
     (Загрузка программы "имя" с диска)
     Turbo Debugger  дал  команду  программе  TDREMOTE  загрузить
программу с диска в память для подготовки ее к отладке.

     Program load failed, EXEC failure
     (Загрузка программы прервана, ошибка выполнения)
     DOS не   может  загрузить  программу  в  память.  Это  может
произойти в том случае, если программа запорчена или обрезана. Вы
должны  удалить  программный  файл  с  диска.  Это заставит Turbo
Debugger  переслать  новую  копию  по  линии  связи.  Если  после
удаления  файла  это  сообщение появится вновь,  вы должны заново
скомпоновать его на другой системе и попытаться еще раз.

     Program load failed; not enough memory
     (Загрузка программы прервана, не хватает памяти)
     На удаленной системе нет достаточного  количества  свободной
памяти  для загрузки программы,  которую требуется отладить.  Это
может произойти только с очень  большими  программами,  поскольку
утилита TDREMOTE занимает всего 15К памяти.

     Program load failed; program not found
     (Загрузка программы прервана, программа не найдена)
     TDREMOTE не может найти программу на диске. Этого никогда не
должно происходить,  поскольку Turbo Debugger загружает программу
на удаленную систему, если не может ее там найти.

     Program load successful
     (Программа успешно загружена)
     TDREMOTE завершила  загрузку  программы,  которую  требуется
отладить.

     Reading file "name" from Turbo Debugger
     (Чтение файла "имя" из отладчика Turbo Debugger)
     Файл пересылается отладчику Turbo Debugger.

     Unknown request: message
     (Неизвестный запрос: сообщение)
     Программа TDREMOTE  получила  недопусимый  запрос  с  другой
системы.  При  правильной  работе  связи это сообщение никогда не
должно возникать.  Если вы  получили  это  сообщение,  проверьте,
правильно  ли  подключен  кабель связи.  Если и после этого будет
возникать та же ошибка,  попробуйте уменьшить скорость передачи с
помощью параметра командной строки -rs.

     Waiting for handshake (press Ctrl-Break to quit)
     (Ожидание квитирования (для выхода нажмите Ctrl-Break))
     Программа TDREMOTE   запущена   и   ожидает   сообщений   от
программы,  находящейся  на  другой  системе.  Если   вы   хотите
вернуться в DOS до того, как другая система инициализирует связь,
нажмите клавиши Ctrl-Break.

Обеспечение совместной работы всех аппаратных средств
-----------------------------------------------------------------

     Поскольку для  удаленной  отладки  требуется  два  различных
компьютера и  соединяющий  их  кабель,  у  вас  могут  возникнуть
затруднения при обеспечении их совместной работы.

     Если возникают   какие-либо   затруднения,   прежде   всего,
проверьте,  правильно  ли  подключен  кабель.  Затем   попробуйте
установить  связь с наименьшей скоростью,  используя параметр -rs
при запуске программ TDREMOTE и TD. Если все работает нормально с
параметром  -rs1,  попробуйте использовать параметр -rs2 (средняя
скорость).  Некоторые комбинации различных компьютеров и  кабелей
не  всегда  нормально работают с максимальной скоростью,  поэтому
если вы смогли  обеспечить  нормальную  работу  только  на  более
низкой скорости, можно попробовать использовать другой кабель или
другие компьютеры.
