Использование Remote Debugging
Remote Debugging
Использование Remote Debugging Не часто, но бывает так, что программа на твоем компьютере, где стоит среда разработки, запускается и работает замечательно, а вот на другой машине, например, на машине клиента, возникают какие-нибудь непонятные ошибки. Существует несколько способов отладки таких программ. Во-первых, можно поставить среду разработки пользователю на машину и там попробовать отладить программу. Однако этот вариант вряд ли можно считать удачным и отличающимся изяществом. К тому же пропадет чистота эксперимента: инсталляция delphi может заменить какие-нибудь старые системные библиотеки windows более новыми, после чего ошибка в программе может уже и не возникнуть. К тому же может помешать отсутствие свободного пространства на диске или нежелание пользователя. Следующий наиболее простой и незатейливый вариант - это в той части программы, где, как вы предполагаете, находится ошибка, расставить функции messagebox (или showmessage) с каким-нибудь сообщением и, таким образом, более четко определить место возникновения ошибки. Этот вари ант прост, как все гениальное, но обладает рядом существенных недостатков: 1. Это довольно долго и утомительно. Каждый раз приходится убирать старые функции и расставлять новые, перекомпилировать программу и копировать ее на машину клиента. 2. Ошибка может возникать в том месте, где поставить свою функцию весьма непросто. Например, в одном из стандартных модулей delphi. 3. Ну и, наконец, можно просто банально забыть убрать какой-нибудь из messagebox'ов. Сам так не раз прокалывался. Однако в ряде случаев этот вариант может оказаться единственно возможным. Еще один вариант отладки таких программ предназначен для тех, у кого рабочая машина и машина клиента находятся в локальной сети. В состав инсталляции delphi входит небольшая, но очень полезная утилита - remote debugging. Ее инсталляция находится в папке rdebug. Назначение remote debugging, как следует из названия, - это удаленная отладка программ. Как раз наш случай, лучше и не придумаешь. Но прежде чем воспользоваться всеми прелестями удаленной отладки программы в среде delphi, remote debugging надо скопировать на машину пользователю, проинсталлировать и запустить. После чего в system tray'е появится изображение зеленого жучка. Вернемся к нашему проекту. В опциях проекта (project|options) необходимо произвести следующие изменения: 1. На вкладке linker включить опцию include remote debug symbols. 2. На вкладке directories/conditionals в поле output directory необходимо указать путь к общедоступной папке на машине клиента (с именем машины). Если сделать это затруднительно, то можно указать папку на своей машине, а полученные после компиляции файлы с расширениями exe и rsm каждый раз копировать на машину клиента. 3. Нажмите кнопку ОК. Далее перейдем к параметрам, с которыми будет запускаться программа (run|parameters). На вкладке remote необходимо указать следующие данные: 1. В поле remote path указать путь и имя файла на удаленной машине, где находится исполняемый файл, с сетевым именем удаленной машины. 2. В поле remote host надо указать сетевое имя удаленной машины или ее ip адрес. 3. Далее можно сделать следующее: Включить опцию debug project on remote machine и нажать кнопку ОК. Тогда после выполнения команды run (f9) вы запустите сессию удаленной отладки. Или так: Нажать кнопку load, чтобы сразу начать сессию удаленной отладки. Разумеется, на удаленной машине уже должны быть исполняемый файл (.exe) и файл для удаленной отладки (.rsm). После всех этих нехитрых манипуляций с настройками проекта и параметрами запуска на удаленной машине должна запуститься программа, а delphi - перейти в состояние отладки. Далее удаленная отладка программы ничем не отличается от обычной отладки любой программы. Ну, вот, пожалуй, и все. Успешной отладки, господа программисты!