Objets clients
Presque toutes les interactions avec le moteur de débogage ont lieu par le biais d’objets clients, souvent appelés simplement clients. Chaque client fournit une implémentation des interfaces du moteur de niveau supérieur. Chaque interface fournit un ensemble spécifique de méthodes, qui peuvent être utilisées pour interagir avec le moteur et, à travers ce dernier, avec les cibles. Une instance du moteur peut avoir de nombreux clients, chacun avec son propre état.
Clients principaux
Un client principal est un client qui a rejoint la session de débogage en cours. Au départ, lorsqu’un nouvel objet client est créé, ce n’est pas un client principal. Un client devient un client principal lorsqu’il est utilisé pour acquérir une cible (par exemple, en appelant CreateProcess2) ou lorsqu’il est connecté à la session de débogage à l’aide de ConnectSession. La commande .clients du débogueur répertorie uniquement les clients principaux.
Objets de rappel
Les objets de rappel peuvent être inscrits auprès de chaque client. Il en existe trois types :
Objets de rappel d’entrée (ou rappels d’entrée) : le moteur appelle les rappels d’entrée pour demander une entrée. Par exemple, un débogueur doté d’une fenêtre de console peut inscrire un rappel d’entrée pour fournir au moteur l’entrée de l’utilisateur, ou un débogueur peut inscrire un rappel d’entrée pour fournir au moteur une entrée provenant d’un fichier.
Objets de rappel de sortie (ou rappels de sortie) : le moteur appelle les rappels de sortie pour afficher la sortie. Par exemple, un débogueur doté d’une fenêtre de console peut inscrire un rappel de sortie pour présenter la sortie du débogueur à l’utilisateur, ou un débogueur peut inscrire un rappel de sortie pour envoyer la sortie à un fichier journal.
Objets de rappel d’événements (ou rappels d’événements) : le moteur appelle les rappels d’événements chaque fois qu’un événement se produit dans une cible (ou lorsqu’une modification de l’état du moteur se produit). Par exemple, une bibliothèque d’extensions de débogueur peut inscrire un rappel d’événement pour surveiller certains événements ou effectuer des actions automatisées lorsqu’un événement particulier se produit.
Débogage à distance
Les objets clients facilitent la communication avec les instances distantes du moteur hôte. La fonction DebugConnect crée un objet client connecté à une instance de moteur distante ; les méthodes appelées sur ce client sont exécutées par le moteur distant et les objets de rappel inscrits localement auprès du client seront appelés lorsque le moteur distant effectue des appels de rappels.
Informations supplémentaires
Pour plus d’informations sur la création et l’utilisation d’objets clients, consultez Utilisation des objets de rappel. Pour en savoir plus sur l’inscription d’objets de rappel, consultez Utilisation des objets de rappel.