Activation d’un client intelligent
Une fois le serveur de processus DbgSrv activé, vous pouvez créer un client intelligent sur un autre ordinateur et commencer une session de débogage.
Il existe deux façons de démarrer un client intelligent : en démarrant CDB ou WinDbg avec l’option de ligne de commande -premote, ou en utilisant l’interface graphique WinDbg.
Le protocole du client intelligent doit correspondre au protocole du serveur de processus. La syntaxe générale pour démarrer un client intelligent dépend du protocole utilisé. Les options suivantes existent :
Debugger -premote npipe:server=Server,pipe=PipeName[,password=Password] [Options]
Debugger -premote tcp:server=Server,port=Socket[,password=Password][,ipversion=6] [Options]
Debugger -premote tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] [Options]
Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]
Debugger -premote spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] [Options]
Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] [Options]
Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] [Options]
Pour utiliser l’interface graphique pour se connecter à un serveur de processus, WinDbg doit être en mode dormant . Elle doit avoir été démarrée sans paramètres de ligne de commande, ou elle doit avoir terminé la session de débogage précédente. Sélectionner le fichier | Se connecter à la commande de menu Stub distant. Lorsque la boîte de dialogue Se connecter au serveur stub distant s’affiche, entrez l’une des chaînes suivantes dans la zone de texte Chaîne de connexion :
npipe:server=Server,pipe=PipeName[,password=Password]
tcp:server=Server,port=Socket[,password=Password][,ipversion=6]
tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6]
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]
spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password]
ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password]
ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password]
Vous pouvez également utiliser le bouton Parcourir pour localiser les serveurs de processus actifs.
Les paramètres des commandes précédentes ont les valeurs possibles suivantes :
Débogueur
Il peut s’agir de CDB ou WinDbg.
Serveur
Il s’agit du nom réseau ou de l’adresse IP de l’ordinateur sur lequel le serveur de processus a été créé. Les deux barres obliques inverses initiales (\) sont facultatives sur la ligne de commande, mais ne sont pas autorisées dans la boîte de dialogue WinDbg.
pipe= PipeName
Si le protocole NPIPE ou SPIPE est utilisé, PipeName est le nom qui a été attribué au canal lors de la création du serveur de processus.
Si vous n’êtes pas connecté à l’ordinateur client avec un compte qui a accès à l’ordinateur serveur, vous devez fournir un nom d’utilisateur et un mot de passe. Sur l’ordinateur client, dans une fenêtre d’invite de commandes, entrez la commande suivante.
net use \\Server\ipc$ /user :UserName
où le serveur est le nom de l’ordinateur serveur, et UserName est le nom d’un compte qui a accès à l’ordinateur serveur.
Lorsque vous y êtes invité, entrez le mot de passe de UserName.
Une fois cette commande réussie, vous pouvez activer un client intelligent à l’aide de l’option de ligne de commande -premote ou à l’aide de l’interface graphique WinDbg.
Notez que vous devrez peut-être activer le partage de fichiers et d’imprimantes sur l’ordinateur serveur. Dans le Panneau de configuration, accédez aux paramètres de partage avancés du >Centre réseau et partage>. Sélectionnez Activer le partage de fichiers et d’imprimantes.
port= Prise
Si le protocole TCP ou SSL est utilisé, Socket est le même numéro de port de socket que celui utilisé lors de la création du serveur de processus.
clicon
Spécifie que le serveur de processus tente de se connecter au client intelligent par le biais d’une connexion inversée. Le client doit utiliser clicon si et uniquement si le serveur utilise clicon. Dans la plupart des cas, le client intelligent est démarré avant le serveur de processus lorsqu’une connexion inversée est utilisée.
port= COMPort
Si le protocole COM est utilisé, COMPort spécifie le port COM à utiliser. Le préfixe « COM » est facultatif (par exemple, « com2 » et « 2 » sont acceptables).
baud= BaudRate
Si le protocole COM est utilisé, BaudRate doit correspondre au taux de baud choisi lors de la création du serveur de processus.
channel= COMChannel
Si le protocole COM est utilisé, COMChannel doit correspondre au numéro de canal choisi lors de la création du serveur de processus.
proto= Protocole
Si le protocole SSL ou SPIPE est utilisé, le protocole doit correspondre au protocole sécurisé utilisé lors de la création du serveur de processus.
Cert
Si le protocole SSL ou SPIPE est utilisé, vous devez utiliser le paramètre certuser=Cert ou machuser=Cert qui a été utilisé lors de la création du serveur de processus.
password= Mot de passe
Si un mot de passe a été utilisé lors de la création du serveur de processus, le mot de passe doit être fourni pour créer le client intelligent. Il doit correspondre au mot de passe d’origine. Les mots de passe respectent la casse. Si le mot de passe incorrect est fourni, le message d’erreur spécifie « Erreur 0x80004005 ».
ipversion=6
(Debugging Tools for Windows 6.6.07 et versions antérieures seulement) Force le débogueur à utiliser la version IP 6 plutôt que la version 4 lors de l’utilisation de TCP pour se connecter à Internet. Dans Windows Vista et les versions ultérieures, le débogueur tente de passer automatiquement à la version IP 6, rendant cette option inutile.
Options
Tous les paramètres de ligne de commande supplémentaires peuvent être placés ici. Consultez les options de ligne de commande pour obtenir une liste complète. Si vous utilisez CDB, cela doit spécifier le processus que vous souhaitez déboguer. Si vous utilisez WinDbg, vous pouvez spécifier le processus sur la ligne de commande ou via l’interface graphique.
Étant donné que le serveur de processus agit simplement comme une passerelle pour le client intelligent, les options supplémentaires seront identiques à celles que vous utiliseriez si vous démarrez un débogueur en mode utilisateur sur la même machine que l’application cible.
Si vous utilisez l’option -premote avec .attach (Attacher au processus) ou .create (Créer un processus), les paramètres sont identiques à ceux répertoriés ci-dessus.
Dépannage
Si vous voyez ce message : le client n’utilise pas la même version du protocole de communication à distance que le serveur indique que la version de DbgSrv que vous tentez de vous connecter utilise une version de protocole différente de la version de WinDbg.
Il est rare que des modifications de protocole soient apportées. Quand cela se produit, veillez à utiliser les versions correspondantes de la dernière version disponible de DbgSrv et WinDbg (classique) ou WinDbg. Pour plus d’informations sur le téléchargement de la dernière version, consultez Outils de débogage pour Windows.