Activation d’un répéteur
Pour activer la connexion de répéteur, vous démarrez généralement le serveur, puis démarrez le répéteur, puis démarrez le client.
Il est également possible de démarrer le répéteur d’abord, puis le serveur. Toutefois, sauf si vous utilisez le paramètre clicon pour établir une connexion inversée, le client doit toujours être démarré en dernier.
Étape 1 : démarrage du serveur
Le serveur peut être un serveur de débogage, un serveur de processus ou un serveur de connexion KD. Vous démarrez cela comme vous le feriez normalement, sauf que les paramètres du protocole de transport seront utilisés pour se connecter au répéteur, et non au client. Pour plus d’informations, consultez Activation d’un serveur de débogage, activation d’un serveur de processus ou activation d’un serveur de connexion KD.
Si vous utilisez un mot de passe lors de la création du serveur, ce mot de passe est requis lorsque le client se joint, mais pas lorsque le répéteur est créé.
Si vous utilisez le paramètre masqué , le serveur est masqué comme d’habitude. Le répéteur lui-même est toujours masqué.
Étape 2 : démarrage du répéteur
Le répéteur inclus dans les outils de débogage pour Windows est appelé DbEngPrx (dbengprx.exe).
DbEngPrx comprend les protocoles de transport suivants : canal nommé (NPIPE), TCP et port COM.
Si votre client et votre serveur utilisent le protocole SSL (Secure Sockets Layer), vous devez utiliser le protocole TCP pour le répéteur. Si votre client et votre serveur utilisent le protocole SPIPE (Secure Pipe), vous devez utiliser le protocole NPIPE pour le répéteur. Le répéteur transmet toutes les données qu’il reçoit : il n’interprète, chiffre ou déchiffre aucune information. Tout le chiffrement et le déchiffrement sont effectués par le client et le serveur.
La syntaxe de la ligne de commande DbEnPrx est la suivante :
dbengprx [-p] -c ClientTransport -s ServerTransport
Les valeurs potentielles des paramètres des commandes précédentes sont les suivantes :
-p
Provoque la suppression de DbEngPrx existante même après la suppression de toutes les connexions.
ClientTransport
Spécifie les paramètres de protocole à utiliser pour la connexion au serveur. Le protocole doit correspondre à celui utilisé lors de la création du serveur. Les syntaxes de protocole sont les suivantes :
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]
Les paramètres de protocole ont les significations suivantes :
Serveur
Il s’agit du nom réseau ou de l’adresse IP de l’ordinateur sur lequel le serveur a été créé. Les deux premiers antislashs (\) sont facultatifs.
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.
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.
clicon
Spécifie que le serveur tente de se connecter au répéteur par le biais d’une connexion inversée. ClientTransport doit utiliser clicon si et uniquement si le serveur utilise clicon. Dans la plupart des cas, le répéteur est démarré avant le serveur 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.
channel= COMChannel
Si le protocole COM est utilisé, COMChannel doit correspondre au numéro de canal choisi lors de la création du serveur.
password= Mot de passe
Si un mot de passe a été utilisé lors de la création du serveur, le mot de passe doit être fourni pour créer le client de débogage. 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.
ServerTransport
Spécifie les paramètres de protocole qui seront utilisés lorsque le client se connecte au répéteur. Les syntaxes de protocole possibles sont les suivantes :
npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable]
tcp:port=Socket[,hidden][,password=Password][,IcfEnable]
tcp:port=Socket,clicon=Client[,password=Password]
com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password]
Les paramètres de protocole ont les significations suivantes :
pipe= PipeName
Lorsque le protocole NPIPE ou SPIPE est utilisé, PipeName est une chaîne qui servira de nom au tuyau. Chaque nom de canal doit identifier un répéteur unique. Si vous essayez de réutiliser un nom de tuyau, vous recevrez un message d’erreur. PipeName ne doit pas contenir d’espaces ou de guillemets. PipeName peut inclure un code de formatage numérique printf, tel que %x ou %d. Le répéteur remplace cela par l’ID de processus de DbEngPrx. Un deuxième code de ce type sera remplacé par l’ID de thread de DbEngPrx.
port= Prise
Lorsque le protocole TCP ou SSL est utilisé, Socket est le numéro de port socket.
Il est également possible de spécifier une plage de ports séparés par un deux-points. DbEngPrx vérifie chaque port de cette plage pour voir s’il est gratuit. S’il trouve un port libre et qu’aucune erreur ne se produit, le répéteur est créé. Le client doit spécifier le port réel utilisé pour se connecter au répéteur. Pour déterminer le port réel, recherchez le répéteur ; lorsque ce répéteur est affiché, le port est suivi de deux nombres séparés par un signe deux-points. Le premier nombre sera le port réel utilisé ; le second peut être ignoré. Par exemple, si le port était spécifié comme port=51:60, et que le port 53 était effectivement utilisé, les résultats de la recherche afficheront « port=53:60 ». (Si vous utilisez le paramètre clicon pour établir une connexion inverse, le client peut spécifier une plage de ports de cette façon, tandis que le répéteur doit spécifier le port réel utilisé.)
clicon=Client
Lorsque le protocole TCP ou SSL est utilisé et que le paramètre clicon est spécifié, une connexion inverse sera ouverte. Cela signifie que le répéteur tente de se connecter au client, au lieu de laisser le client lancer le contact. Cela peut être utile si vous avez un pare-feu qui empêche une connexion dans le sens habituel. Le client spécifie le nom réseau ou l’adresse IP de l’ordinateur sur lequel le client existe ou sera créé. Les deux premiers antislashs (\) sont facultatifs.
Étant donné que le répéteur recherche un client spécifique, vous ne pouvez pas connecter plusieurs clients au répéteur si vous utilisez cette méthode. Si la connexion est refusée ou interrompue, vous devrez redémarrer le répéteur.
Lorsque clicon est utilisé, il est préférable de démarrer le client avant la création du répéteur, bien que l’ordre habituel (répéteur avant le client) soit également autorisé.
port= COMPort
Lorsque 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). Vous ne pouvez pas utiliser le même port COM dans ClientTransport et ServerTransport.
baud= BaudRate
Lorsque le protocole COM est utilisé, BaudRate spécifie le débit binaire auquel la connexion fonctionnera.» Tout débit binaire pris en charge par le matériel est autorisé. Si vous utilisez le protocole COM à la fois dans ClientTransport et ServerTransport , vous pouvez spécifier des taux de baud différents, mais naturellement le taux plus lent sera la limite sur la vitesse à laquelle le client et le serveur peuvent communiquer entre eux.
channel= COMChannel
Si le protocole COM est utilisé, COMChannel spécifie le canal COM à utiliser pour communiquer avec le client. Cela peut être une valeur comprise entre 0 et 254, inclusivement. Vous pouvez utiliser un seul port COM pour plusieurs connexions à l’aide de numéros de canal différents. (La différence avec l’utilisation d’un port COM pour un câble de débogage est que, dans ce cas, il n’est pas possible d’utiliser des canaux à l’intérieur d’un port COM).
hidden
Empêche le serveur d’apparaître lorsqu’un autre débogueur affiche tous les serveurs actifs.
password= Mot de passe
Oblige un client à fournir le mot de passe spécifié pour se connecter à la session de débogage. Le mot de passe peut être n’importe quelle chaîne alphanumérique.
IcfEnable
Force le débogueur à activer les connexions de port nécessaires pour la communication TCP ou de tuyau nommé lorsque le pare-feu de connexion Internet est actif. Par défaut, le pare-feu de connexion Internet désactive les ports utilisés par ces protocoles. Lorsque IcfEnable est utilisé avec une connexion TCP, le débogueur amène Windows à ouvrir le port spécifié par le paramètre Socket. Lorsque IcfEnable est utilisé avec une connexion de tuyau nommé, le débogueur amène Windows à ouvrir les ports utilisés pour les tuyaux nommés (ports 139 et 445). Le débogueur ne ferme pas ces ports après la fin de la connexion.
Étape 3 : démarrage du client
Le client doit être un client de débogage ou un client intelligent, selon le type de votre serveur. Pour plus d’informations, consultez Activation d’un client de débogage, Activation d’un client intelligent ou activation d’un client intelligent (mode noyau).
Si le serveur rejette la connexion (par exemple, si vous fournissez un mot de passe incorrect), le répéteur et le client sont arrêtés. Vous devrez redémarrer les deux pour rétablir le contact avec le serveur.