Не часто, но бывает так, что программа на твоем компьютере, где стоит среда
разработки, запускается и работает замечательно, а вот на другой машине,
например, на машине клиента, возникают какие-нибудь непонятные ошибки.
Существует несколько способов отладки таких программ. Во-первых, можно поставить
среду разработки пользователю на машину и там попробовать отладить программу.
Однако этот вариант вряд ли можно считать удачным и отличающимся изяществом. К
тому же пропадет чистота эксперимента: инсталляция Delphi может заменить
какие-нибудь старые системные библиотеки Windows более новыми, после чего ошибка
в программе может уже и не возникнуть. К тому же может помешать отсутствие
свободного пространства на диске или нежелание пользователя. Следующий наиболее
простой и незатейливый вариант — это в той части программы, где, как вы
предполагаете, находится ошибка, расставить функции MessageBox (или ShowMessage)
с каким-нибудь сообщением и, таким образом, более четко определить место
возникновения ошибки. Этот вариант прост, как все гениальное, но обладает рядом
существенных недостатков:
- Это довольно долго и утомительно. Каждый раз приходится
убирать старые функции и расставлять новые, перекомпилировать
программу и копировать ее на машину клиента.
- Ошибка может возникать в том месте, где поставить свою
функцию весьма непросто. Например, в одном из стандартных
модулей Delphi.
- Ну и, наконец, можно просто банально забыть убрать
какой-нибудь из MessageBox'ов. Сам так не раз прокалывался.
Однако в ряде случаев этот вариант может оказаться единственно возможным. Еще
один вариант отладки таких программ предназначен для тех, у кого рабочая машина
и машина клиента находятся в локальной сети.
В состав инсталляции Delphi входит небольшая, но очень полезная утилита —
Remote Debugging. Ее инсталляция находится в папке rdebug. Назначение Remote
Debugging, как следует из названия, — это удаленная отладка программ. Как раз
наш случай, лучше и не придумаешь.
Но прежде чем воспользоваться всеми прелестями удаленной отладки программы в
среде Delphi, Remote Debugging надо скопировать на машину пользователю,
проинсталлировать и запустить. После чего в System Tray'е появится изображение
зеленого жучка. Вернемся к нашему проекту. В опциях проекта (Project|Options)
необходимо произвести следующие изменения:
- На вкладке Linker включить опцию Include remote debug
symbols.
- На вкладке Directories/Conditionals в поле Output directory
необходимо указать путь к общедоступной папке на машине клиента
(с именем машины). Если сделать это затруднительно, то можно
указать папку на своей машине, а полученные после компиляции
файлы с расширениями exe и rsm каждый раз копировать на машину
клиента.
- Нажмите кнопку ОК.
Далее перейдем к параметрам, с которыми будет запускаться программа (Run|Parameters).
На вкладке Remote необходимо указать следующие данные:
- В поле Remote Path указать путь и имя файла на удаленной
машине, где находится исполняемый файл, с сетевым именем
удаленной машины.
- В поле Remote Host надо указать сетевое имя удаленной машины
или ее IP адрес.
- Далее можно сделать следующее:
Включить опцию Debug Project on remote machine и нажать кнопку ОК. Тогда
после выполнения команды Run (F9) вы запустите сессию удаленной отладки.
Или так:
Нажать кнопку Load, чтобы сразу начать сессию удаленной отладки. Разумеется,
на удаленной машине уже должны быть исполняемый файл (.exe) и файл для удаленной
отладки (.rsm).
После всех этих нехитрых манипуляций с настройками проекта и параметрами
запуска на удаленной машине должна запуститься программа, а Delphi — перейти в
состояние отладки. Далее удаленная отладка программы ничем не отличается от
обычной отладки любой программы.
Ну, вот, пожалуй, и все. Успешной отладки, господа программисты!
|