Partager via


Cibles

Le moteur de débogueur prend en charge le débogage de différents types de cibles, les cibles en mode utilisateur et en mode noyau , les cibles actives et les fichiers de vidage sur incident, ainsi que les cibles locales et distantes. Il existe différentes méthodes pour connecter le moteur à ces différents types de cibles.

Fichiers de vidage sur incident

Les fichiers de vidage sur incident en mode utilisateur et en mode noyau sont ouverts avec OpenDumpFile. Le moteur peut également créer des fichiers de vidage à partir d’une cible avec WriteDumpFile2.

Cibles actives, User-Mode

Le moteur de débogueur peut créer et attacher des processus en mode utilisateur.

La création d’un processus s’effectue en fournissant une ligne de commande, et éventuellement un répertoire et un environnement initiaux, pour le nouveau processus. Le moteur peut ensuite se connecter au nouveau processus ou maintenir le nouveau processus suspendu pendant qu’il se connecte à un autre processus. Par exemple, lors du débogage d’une application qui se compose à la fois d’un client et d’un serveur, il est possible de créer un client dans un état suspendu et de l’attacher à un serveur déjà en cours d’exécution, ce qui permet de définir des points d’arrêt du serveur avant l’exécution du client et provoque des opérations serveur.

Lors du détachement d’un processus, le moteur peut éventuellement laisser le processus s’exécuter normalement, le tuer ou abandonner le processus (le laisser suspendu jusqu’à ce qu’un autre débogueur s’y attache ou qu’il soit tué).

Le moteur peut être interrogé pour obtenir des informations sur tous les processus en mode utilisateur qui s’exécutent sur l’ordinateur, y compris l’ID de processus et le nom de l’image exécutable utilisée pour démarrer le processus. Ces informations peuvent être utilisées pour localiser un processus à déboguer.

Cibles actives, Kernel-Mode

La méthode AttachKernel connecte le moteur de débogueur à un noyau Windows.

Cibles distantes

Lorsque vous utilisez le moteur de débogueur pour déboguer à distance, il existe potentiellement deux étapes supplémentaires :

  1. Connectez-vous au moteur hôte. Si le moteur hôte n’est pas le moteur local instance, utilisez DebugConnect pour créer un objet client connecté au moteur hôte.

  2. Connectez le moteur hôte au serveur de processus ou au serveur de connexion du noyau. Si le moteur hôte ne se connecte pas directement à la cible, il doit se connecter à un serveur de processus ou à un serveur de connexion noyau qui le fait.

À présent, le client peut indiquer au moteur hôte d’acquérir une cible via le serveur de processus ou le serveur de connexion du noyau.

Acquisition de cibles

Lors de l’acquisition d’une cible, l’acquisition de la cible n’est pas terminée tant que la cible n’a pas généré un événement. En règle générale, cela signifie d’abord appeler une méthode pour attacher le débogueur à la cible, puis appeler WaitForEvent pour permettre à la cible de générer un événement. Cela reste vrai lorsque la cible est un fichier de vidage sur incident, car ceux-ci stockent toujours un événement, généralement l’événement qui a provoqué la création du fichier de vidage.

Informations supplémentaires

Pour plus d’informations sur l’attachement à des cibles, consultez Connexion à des cibles.