Partager via


Contrôle d’une session de débogage à distance

Une fois la session distante démarrée, les commandes peuvent être entrées dans le serveur de débogage ou dans le client de débogage. S’il existe plusieurs clients, l’un d’eux peut entrer des commandes. Une fois entrée enfoncée, la commande est transmise au serveur de débogage et exécutée.

Chaque fois qu’un utilisateur entre une commande, tous les utilisateurs voient la commande elle-même et sa sortie. Si cette commande a été émise à partir d’un client de débogage, tous les autres utilisateurs verront une identification, avant la commande, de l’utilisateur qui a émis la commande. Les commandes émises à partir du serveur de débogage n’ont pas ce préfixe.

Une fois qu’une commande est exécutée par un utilisateur, les autres utilisateurs connectés via KD ou CDB ne voient pas d’invite de commandes. D’autre part, les utilisateurs de WinDbg verront l’invite dans le volet inférieur de la fenêtre Commande du débogueur en continu, même lorsque le moteur du débogueur est en cours d’exécution. Ni l’un ni l’autre ne devrait être une cause d’alarme ; tout utilisateur peut entrer une commande à tout moment, et le moteur exécute ces commandes dans l’ordre dans lequel ils ont été reçus.

Les actions effectuées via l’interface WinDbg seront également exécutées par le serveur de débogage.

Communication entre les utilisateurs

Chaque fois qu’un nouveau client de débogage se connecte à la session, tous les autres utilisateurs voient un message que ce client a connecté. Aucun message n’est affiché lorsqu’un client se déconnecte.

La commande .clients (Liste des clients de débogage) répertorie tous les clients actuellement connectés à la session de débogage.

La commande .echo (Echo Comment) est utile pour envoyer des messages d’un utilisateur à un autre.

Espaces de travail WinDbg

Lorsque WinDbg est utilisé comme client de débogage, son espace de travail enregistre uniquement les valeurs définies via l’interface graphique. Les modifications apportées par le biais de la fenêtre Commande du débogueur ne seront pas enregistrées. (Cela garantit que seules les modifications apportées par le client local seront reflétées, car la fenêtre Commande du débogueur acceptera les entrées de tous les clients ainsi que du serveur de débogage.)

Chemins d’accès aux fichiers

Le chemin du symbole, le chemin d’accès de l’image exécutable et le chemin d’accès à la DLL d’extension sont tous interprétés comme des chemins d’accès aux fichiers relatifs au dossier d’installation outils de débogage pour Windows sur le serveur de débogage.

Quand WinDbg est utilisé comme client de débogage, il a également son propre chemin d’accès source local . Toutes les commandes liées à la source accèdent aux fichiers sources sur l’ordinateur local. Par conséquent, les chemins d’accès appropriés doivent être définis sur n’importe quel client ou serveur qui utilisera des commandes sources.

Ce système à chemins multiples permet à un client de débogage d’utiliser des commandes liées à la source sans partager réellement les fichiers sources avec d’autres clients ou avec le serveur. Cela est utile s’il existe des fichiers sources privés ou confidentiels auxquels l’un des utilisateurs a accès.

Annulation du serveur de débogage

La commande .endsrv (Serveur de débogage de fin) peut être utilisée pour arrêter un serveur de débogage. Si le débogueur a établi plusieurs serveurs de débogage, vous pouvez annuler certains d’entre eux tout en laissant d’autres en cours d’exécution.

La fin d’un serveur empêchera les futurs clients de s’y attacher. Il ne coupera pas les clients actuellement attachés via le serveur.

Sortie du débogueur et fin de la session

Pour quitter un client de débogage sans arrêter le serveur, vous devez émettre une commande à partir de ce client spécifique. Si ce client est KD ou CDB, utilisez la touche CTRL+B pour quitter. Si vous utilisez un script pour exécuter KD ou CDB, utilisez .remote_exit (Exit Débogage Client). Si ce client est WinDbg, choisissez Quitter dans le menu Fichier pour quitter.

Pour mettre fin à l’ensemble de la session et quitter le serveur de débogage, utilisez la commande q (Quitter). Cette commande peut être entrée à partir de n’importe quel serveur ou client, et elle met fin à l’ensemble de la session pour tous les utilisateurs.