Partager via


Débogage automatique de l’application de service

Un débogueur peut être lancé automatiquement lorsque l’application de service démarre. Vous pouvez également le lancer automatiquement lorsque l’application de service rencontre une exception ou exécute une commande DebugBreak . Si vous avez choisi l’une de ces méthodes, cette rubrique explique comment procéder. Si vous ne savez pas quelle méthode choisir, consultez Choisir la meilleure méthode.

Ensuite, utilisez la procédure suivante :

  1. Effectuez l’une des étapes préparatoires suivantes :

  2. Si le service est déjà en cours d’exécution, vous devez le redémarrer pour que ces modifications prennent effet. Nous vous recommandons de redémarrer Windows lui-même, afin de supprimer tous les effets du service en cours d’exécution. Si vous ne souhaitez pas redémarrer Windows, utilisez les commandes suivantes, où ServiceName est le nom du service :

    net stop ServiceName 
    net start ServiceName 
    
  3. Si vous avez choisi de déboguer le code d’initialisation de l’application de service, lorsque le service démarre, le débogueur est lancé et s’attache à l’application de service.

    Si vous avez choisi de laisser le débogueur être déclenché par une exception, l’application de service s’exécute normalement jusqu’à ce qu’elle rencontre une exception ou exécute une fonction DebugBreak . À ce stade, le débogueur est lancé et s’attache à l’application de service.

  4. L’étape suivante dépend de la ligne de commande du débogueur que vous avez spécifiée à l’étape 1 :

    • Si vous avez spécifié un débogueur sans aucune option de communication à distance, ce débogueur est lancé et sa fenêtre devient visible.
    • Si vous avez spécifié NTSD avec les options -server et -noio, NTSD est lancé sans fenêtre de console. Vous pouvez ensuite vous connecter à la session de débogage à partir d’un autre ordinateur en démarrant n’importe quel débogueur en mode utilisateur avec le paramètre -remote. Pour obtenir des instructions, consultez Activation d’un client de débogage.
    • Si vous avez spécifié NTSD avec l’option -d, NTSD est lancé sans fenêtre de console. Vous pouvez ensuite vous connecter à la session de débogage à l’aide du débogueur de noyau exécuté sur un autre ordinateur. Pour obtenir des instructions, consultez Contrôle du débogueur User-Mode à partir du débogueur de noyau.
    • Si vous avez spécifié NTSD avec les options -ddefer et -server, NTSD est lancé sans fenêtre de console. Vous pouvez ensuite vous connecter à la session de débogage à l’aide d’un débogueur de noyau et d’un débogueur distant en mode utilisateur, s’exécutant sur un autre ordinateur que le service (mais éventuellement sur le même ordinateur). Pour obtenir des instructions, consultez Combinaison de cette méthode avec le débogage à distance.
  5. Lorsque le débogueur démarre, le service s’interrompt au point d’arrêt du processus initial, à l’exception ou à la commande DebugBreak . Cela vous permet d’examiner l’état actuel de l’application de service, de définir des points d’arrêt et de faire d’autres choix de configuration souhaités.

  6. Utilisez g (Go) ou une autre commande d’exécution pour reprendre l’exécution de l’application de service.

Voir aussi

DebugBreak (fonction)