Partilhar via


Depurando o aplicativo de serviço automaticamente

Um depurador pode ser iniciado automaticamente quando a aplicação de serviço é iniciada. Como alternativa, ele pode ser iniciado automaticamente quando o aplicativo de serviço encontra uma exceção ou executa um comando DebugBreak . Se você escolheu um desses métodos, este tópico explica como proceder. Se você não tiver certeza de qual método escolher, consulte Escolhendo o melhor método.

Em seguida, use o seguinte procedimento:

  1. Execute uma das seguintes etapas preparatórias:

  2. Se o serviço já estiver em execução, você deverá reiniciá-lo para que essas alterações entrem em vigor. Recomendamos que reinicie o próprio Windows para remover quaisquer efeitos do serviço em execução. Se você não quiser reiniciar o Windows, use os seguintes comandos, onde ServiceName é o nome do serviço:

    net stop ServiceName 
    net start ServiceName 
    
  3. Se você tiver optado por depurar o código de inicialização do aplicativo de serviço, quando o serviço for iniciado, o depurador será iniciado e anexado ao aplicativo de serviço.

    Se você tiver optado por permitir que o depurador seja acionado por uma exceção, o aplicativo de serviço será executado normalmente até encontrar uma exceção ou executar uma função DebugBreak . Neste ponto, o depurador é iniciado e anexado ao aplicativo de serviço.

  4. A próxima etapa depende da linha de comando do depurador especificada durante a etapa 1:

    • Se você especificou um depurador sem nenhuma opção de comunicação remota, esse depurador é iniciado e sua janela fica visível.
    • Se você especificou NTSD com as opções -server e -noio, NTSD é iniciado sem uma janela de console. Em seguida, você pode se conectar à sessão de depuração de outro computador iniciando qualquer depurador de modo de usuário com o parâmetro -remote. Para obter instruções, consulte Ativando um cliente de depuração.
    • Se você especificou NTSD com a opção -d, NTSD é iniciado sem uma janela de console. Em seguida, você pode se conectar à sessão de depuração usando o depurador do kernel em execução em outro computador. Para obter instruções, consulte Controlar o Depurador User-Mode a partir do Kernel Debugger.
    • Se você especificou NTSD com as opções -ddefer e -server, NTSD é iniciado sem uma janela de console. Em seguida, você pode se conectar à sessão de depuração usando um depurador do kernel e um depurador remoto de modo de usuário, em execução em um computador diferente do serviço (mas possivelmente no mesmo computador que o outro). Para obter instruções, consulte Combinando este método com depuração remota.
  5. Quando o depurador é iniciado, o serviço pausa no ponto de interrupção do processo inicial, na exceção ou no comando DebugBreak . Isso permite que você examine o estado atual do aplicativo de serviço, defina pontos de interrupção e faça quaisquer outras opções de configuração desejadas.

  6. Use g (Go) ou outro comando de execução para retomar a execução do aplicativo de serviço.

Ver também

Função DebugBreak