Compartilhar via


Depurando o aplicativo de serviço automaticamente

Um depurador pode ser iniciado automaticamente quando o aplicativo de serviço é iniciado. 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.

Depois, 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 você reinicie o Windows em si para remover quaisquer efeitos do serviço em execução. Se você não quiser reiniciar o Windows, use os seguintes comandos, em que ServiceName é o nome do serviço:

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

    Se você tiver escolhido permitir que o depurador seja disparado 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 será iniciado e sua janela ficará visível.
    • Se você especificou o NTSD com as opções -server e -noio, o NTSD será iniciado sem uma janela de console. Em seguida, você pode se conectar à sessão de depuração de outro computador iniciando qualquer depurador do modo de usuário com o parâmetro -remote. Para obter instruções, consulte Ativando um cliente de depuração.
    • Se você especificou o NTSD com a opção -d, o NTSD será iniciado sem uma janela de console. Em seguida, você pode se conectar à sessão de depuração usando o depurador de kernel em execução em outro computador. Para obter instruções, consulte Controling the User-Mode Debugger from the Kernel Debugger.
    • Se você especificou o NTSD com as opções -ddefer e -server, o NTSD será iniciado sem uma janela de console. Em seguida, você pode se conectar à sessão de depuração usando um depurador de kernel e um depurador remoto no modo de usuário, em execução em um computador diferente do serviço (mas possivelmente o mesmo computador que o outro). Para obter instruções, consulte Combinando esse método com a 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 examinar o estado atual do aplicativo de serviço, definir pontos de interrupção e fazer 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.

Confira também

Função DebugBreak