ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 24 Приложение 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 (средняя скорость). Некоторые комбинации различных компьютеров и кабелей не всегда нормально работают с максимальной скоростью, поэтому если вы смогли обеспечить нормальную работу только на более низкой скорости, можно попробовать использовать другой кабель или другие компьютеры. |