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. Поэтому не забудьте структурировать код таким образом, чтобы при возврате этой ошибки не вызывался зависящий от службы код.
Связанные темы