Depurar um serviço
Você pode usar qualquer um dos métodos a seguir para depurar seu serviço.
Use o depurador para depurar o serviço enquanto ele está em execução. Primeiro, obtenha o PID (identificador de processo) do processo de serviço. Depois de obter o PID, anexe ao processo em execução. Para obter informações de sintaxe, consulte a documentação incluída no depurador.
Chame a função DebugBreak para invocar o depurador para depuração just-in-time.
Especifique um depurador a ser usado ao iniciar um programa. Para fazer isso, crie uma chave chamada Opções de Execução de Arquivo de Imagem no seguinte local do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
Crie uma subchave com o mesmo nome que seu serviço (por exemplo, MYSERV.EXE). Para essa subchave, adicione um valor do tipo REG_SZ, chamado Depurador. Use o caminho completo para o depurador como o valor da cadeia de caracteres. No painel de controle Serviços, selecione seu serviço, clique em Inicialização e marcar Permitir que o Serviço interaja com a Área de Trabalho. O serviço deve ser um serviço interativo ou o depurador não pode ser executado na área de trabalho padrão. Observe que essa técnica não tem mais suporte a partir do Windows Vista porque todos os serviços são executados em sessão reservada exclusivamente para serviços e não dá suporte à exibição de uma interface do usuário.
Use o Rastreamento de Eventos para registrar informações em log.
Para depurar o código de inicialização de um serviço de início automático, você precisará instalar e executar temporariamente o serviço como um serviço de início de demanda.
Às vezes, pode ser necessário executar um serviço como um aplicativo de console para fins de depuração. Nesse cenário, a função StartServiceCtrlDispatcher retornará ERROR_FAILED_SERVICE_CONTROLLER_CONNECT. Portanto, certifique-se de estruturar seu código de modo que o código específico do serviço não seja chamado quando esse erro for retornado.
Tópicos relacionados