Débogage manuel de l’application de service
L’attachement manuel à une application de service après son démarrage ressemble beaucoup au débogage de tout processus en mode utilisateur en cours d’exécution.
Utilisez l’outil TList avec l’option /s pour afficher l’ID de processus (PID) de chaque processus en cours d’exécution et les services actifs dans chaque processus.
Si l’application de service que vous souhaitez déboguer est combinée à d’autres services dans un seul processus, vous devez l’isoler avant de la déboguer. Pour ce faire, effectuez la procédure décrite dans Isoler le service. À la fin de cette procédure, redémarrez le service.
Pour déterminer le nouveau PID du service, exécutez la commande de l’outil de configuration du service (Sc.exe) suivante, où ServiceName est le nom du service :
sc queryex ServiceName
Maintenant, démarrez WinDbg ou CDB avec cette application de service comme cible. Il existe trois façons de procéder : en spécifiant le PID avec l’option -p, en spécifiant le nom exécutable avec l’option -pn (si le nom exécutable est unique) ou en spécifiant le nom du service avec l’option -psn.
Par exemple, si le processus SpoolSv.exe a un PID de 651 et contient le service nommé Spooler, les trois commandes suivantes sont équivalentes :
windbg -p 651 [AdditionalOptions]
windbg -pn spoolsv.exe [AdditionalOptions]
windbg -psn spooler [AdditionalOptions]
Une fois le débogueur démarré, procédez comme vous le feriez dans n’importe quelle autre session de débogage en mode utilisateur.