Поделиться через


Debugging a Service (Отладка службы)

Для отладки службы можно использовать любой из следующих методов.

  • Используйте отладчик для отладки службы во время ее работы. Сначала получите идентификатор процесса (PID) процесса службы. Получив ИДЕНТИФИКАТОР, присоедините его к выполняемой процедуре. Сведения о синтаксисе см. в документации по отладчику.

  • Вызовите функцию DebugBreak , чтобы вызвать отладчик для JIT-отладки.

  • Укажите отладчик, используемый при запуске программы. Для этого создайте раздел Параметры выполнения файла образа в следующем расположении реестра:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

    Создайте подраздел с тем же именем, что и служба (например, MYSERV.EXE). В этот подраздел добавьте значение типа REG_SZ с именем Debugger. Используйте полный путь к отладчику в качестве строкового значения. В апплете панели управления Службы выберите службу, щелкните Запуск и проверка Разрешить службе взаимодействовать с рабочим столом. Служба должна быть интерактивной службой, иначе отладчик не может работать на рабочем столе по умолчанию. Обратите внимание, что этот метод больше не поддерживается в Windows Vista, так как все службы выполняются в сеансе, который зарезервирован исключительно для служб и не поддерживает отображение пользовательского интерфейса.

  • Используйте трассировку событий для записи в журнал данных.

Чтобы отладить код инициализации службы с автоматическим запуском, необходимо временно установить и запустить службу как службу по запросу.

Иногда для отладки может потребоваться запустить службу в качестве консольного приложения. В этом сценарии функция StartServiceCtrlDispatcher вернет ERROR_FAILED_SERVICE_CONTROLLER_CONNECT. Поэтому не забудьте структурировать код таким образом, чтобы при возврате этой ошибки не вызывался зависящий от службы код.

Отладка приложения-службы

Средства отладки для Windows