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.

Depurando um aplicativo de serviço

Ferramentas de Depuração para Windows