Compartilhar via


Depurando o aplicativo de serviço manualmente

Anexar manualmente a um aplicativo de serviço depois de iniciado é muito parecido com a depuração de qualquer processo em execução no modo de usuário.

Use a ferramenta TList com a opção /s para exibir a ID do processo (PID) de cada processo em execução e os serviços ativos em cada processo.

Se o aplicativo de serviço que você deseja depurar for combinado com outros serviços em um único processo, você deverá isolá-lo antes de depurá-lo. Para fazer isso, execute o procedimento descrito em Isolando o serviço. Ao final deste procedimento, reinicie o serviço.

Para determinar o novo PID do serviço, emita o seguinte comando da ferramenta de Configuração de Serviço (Sc.exe), em que ServiceName é o nome do serviço:

sc queryex ServiceName 

Agora, inicie o WinDbg ou o CDB com esse aplicativo de serviço como o destino. Há três maneiras de fazer isso: especificando o PID com a opção -p, especificando o nome executável com a opção -pn (se o nome do executável for exclusivo) ou especificando o nome do serviço com a opção -psn.

Por exemplo, se o processo SpoolSv.exe tiver um PID de 651 e contiver o serviço chamado Spooler, os três comandos a seguir serão equivalentes:

windbg -p 651 [AdditionalOptions] 
windbg -pn spoolsv.exe [AdditionalOptions] 
windbg -psn spooler [AdditionalOptions] 

Depois que o depurador for iniciado, prossiga como faria em qualquer outra sessão de depuração no modo de usuário.