2015-07-13 3 views
0

В настоящее время я создаю службу, и мне нужно отлаживать ее. Я также использую форму «Прикрепить к процессам».Автоматически «присоединить к процессу» для отладки службы

(Как описано в первом пункте http://docwiki.embarcadero.com/RADStudio/XE8/en/Debugging_Service_Applications)

Но можно связать автоматический отладчик с сервисом после их строить?

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

+1

Если вы правильно построили сервис, он должен начать поток при запуске службы. Создайте простое консольное приложение, которое делает то же самое (т.е. запускает поток) и отлаживает консольное приложение ... – whosrdaddy

ответ

3

Но это возможно авто ассоциировать отладчик с сервисом после их сборки?

Нет, это не так. Отладчик не может запускать исполняемый файл напрямую, только SCM может это сделать. Несмотря на то, что SCM может быть запущен для запуска программы, например, из командного файла командной строки, отладчик не может быть подключен к запущенному процессу программируемо, только вручную.

0

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

Antother подход IST следующие:

  • Создать «markerfile» где-то (только простой текстовый файл)
  • Внутри службы есть цикл, который выходит, когда файл маркера не существует
  • Установить точку останова только после цикла ожидания
  • Запустить службу (это петля ждет Forthe markerfile б е удалено
  • Присоединить отладчик к процессу обслуживания
  • Удаляют «markerfile»
  • служба выходит из цикла ожидания и останавливается в точке останова
  • Debug
Смежные вопросы