Partager via


Exemples de serveurs de connexion KD

Supposons qu’un technicien de débogage ne soit pas présent sur le site où se trouve l’ordinateur à déboguer. Le technicien de débogage demande à une personne de ce site de connecter cet ordinateur cible à un autre ordinateur avec un câble de débogage.

Laissez cet autre ordinateur se trouver à l’adresse IP 127.0.0.42. Le câble de débogage connecte COM1 sur cet ordinateur à n’importe quel port a été activé pour le débogage sur l’ordinateur cible. Le serveur de connexion KD est démarré avec cette commande :

E:\Debugging Tools for Windows> kdsrv -t tcp:port=1027

Ensuite, à l’autre emplacement, le technicien démarre WinDbg en tant que client intelligent avec cette commande :

G:\Debugging Tools> windbg -k kdsrv:server=@{tcp:server=127.0.0.42,port=1027},trans=@{com:port=com1,baud=57600} -y SymbolPath

Le chemin du symbole sera relatif à l’ordinateur sur lequel le client intelligent est en cours d’exécution.

Voici un autre exemple. Dans ce cas, le protocole NPIPE est choisi et KD est utilisé à la place de WinDbg. Le premier utilisateur choisit un nom de canal. Il peut s’agir de n’importe quelle chaîne alphanumérique , dans cet exemple, « KernelPipe ». Le premier utilisateur ouvre une fenêtre d’invite de commandes avec élévation de privilèges (Exécuter en tant qu’administrateur) et démarre un serveur de débogage en entrant les commandes suivantes :

E:\Debugging Tools for Windows> set _NT_DEBUG_PORT=com1
E:\Debugging Tools for Windows> kdsrv -t npipe:pipe=KernelPipe

Le technicien est connecté à l’ordinateur client avec un compte qui n’a pas accès à l’ordinateur serveur. Mais le technicien connaît le nom d’utilisateur et le mot de passe d’un compte qui a accès à l’ordinateur serveur. Le nom d’utilisateur de ce compte est Contoso. Le technicien entre la commande suivante :

net use \\BOX17\ipc$ /user:Contoso

Lorsque vous y êtes invité, le technicien entre le mot de passe du compte Contoso.

Le technicien ne sait pas quel nom a été utilisé pour le canal nommé. Il interroge donc 127.0.0.42 pour les serveurs de connexion KD :

G:\Debugging Tools> cdb -QR 127.0.0.42
Servers on 127.0.0.42:
Debugger Server - npipe:Pipe=MainPipe
Remote Process Server - npipe:Pipe=AnotherPipe
Remote Kernel Debugger Server - npipe:Pipe=KernelPipe

Trois canaux sont affichés. Toutefois, un seul est un serveur de connexion KD : les autres sont un serveur de débogage et un serveur de processus en mode utilisateur. Le technicien entre la commande suivante pour démarrer le client intelligent :

G:\Debugging Tools> kd -k kdsrv:server=@{npipe:server=127.0.0.42,pipe=KernelPipe},trans=@{com:baud=57600} -y SymbolPath

Notez que bien que le débit en bauds soit spécifié, le port ne l’est pas. Par conséquent, le débogueur utilise par défaut le port spécifié par _NT_DEBUG_PORT sur l’ordinateur sur lequel KdSrv s’exécute.