Condividi tramite


Debug manuale dell'applicazione di servizio

Il collegamento manuale a un'applicazione di servizio dopo l'avvio è molto simile al debug di qualsiasi processo in modalità utente in esecuzione.

Usare lo strumento TList con l'opzione /s per visualizzare l'ID processo (PID) di ogni processo in esecuzione e i servizi attivi in ogni processo.

Se l'applicazione di servizio di cui si vuole eseguire il debug viene combinata con altri servizi in un singolo processo, è necessario isolarla prima di eseguirne il debug. A tale scopo, eseguire la procedura descritta in Isolamento del servizio. Al termine di questa procedura, riavviare il servizio.

Per determinare il nuovo PID del servizio, eseguire il comando seguente dello strumento di configurazione del servizio (Sc.exe), dove ServiceName è il nome del servizio:

sc queryex ServiceName 

Avviare ora WinDbg o CDB con questa applicazione di servizio come destinazione. A tale scopo, è possibile specificare il PID con l'opzione -p specificando il nome eseguibile con l'opzione -pn (se il nome eseguibile è univoco) o specificando il nome del servizio con l'opzione -psn.

Ad esempio, se il processo SpoolSv.exe ha un PID 651 e contiene il servizio denominato Spooler, i tre comandi seguenti sono equivalenti:

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

Dopo l'avvio del debugger, procedere come in qualsiasi altra sessione di debug in modalità utente.