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.