Activation d’un serveur de processus

Le serveur de processus inclus dans outils de débogage pour Windows est appelé DbgSrv (dbgsrv.exe). Pour activer un serveur de processus, ouvrez une fenêtre d’invite de commandes avec élévation de privilèges (Exécuter en tant qu’administrateur), puis entrez la commande dbgsrv .

Note Vous pouvez activer un serveur de processus sans avoir de privilèges élevés, et les clients de débogage pourront se connecter au serveur. Toutefois, les clients ne pourront pas découvrir un serveur de processus, sauf s’il a été activé avec des privilèges élevés. Pour plus d’informations sur la découverte des serveurs de débogage, consultez Recherche de serveurs de processus.

DbgSrv prend en charge plusieurs protocoles de transport : canal nommé (NPIPE), TCP, port COM, canal sécurisé (SPIPE) et SSL (Secure Sockets Layer).

dbgsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

Les paramètres des commandes précédentes ont les valeurs possibles suivantes :

pipe=PipeName
Lorsque le protocole NPIPE ou SPIPE est utilisé, PipeName est une chaîne qui servira de nom du canal. Chaque nom de canal doit identifier un serveur de processus unique. Si vous tentez de réutiliser un nom de canal, vous recevrez un message d’erreur. PipeName ne doit pas contenir d’espaces ni de guillemets. PipeName peut inclure un code de format de style printf numérique, tel que %x ou %d. Le serveur de processus le remplacera par l’ID de processus de DbgSrv. Un deuxième code de ce type sera remplacé par l’ID de thread de DbgSrv.

Note Vous devrez peut-être activer le partage de fichiers et d’imprimantes sur l’ordinateur qui exécute le serveur de processus. Dans Panneau de configuration, accédez à Network and Internet Network and Sharing > Center Advanced Sharing Center> . Sélectionnez Activer le partage de fichiers et d’imprimantes.

port=Socket
Lorsque le protocole TCP ou SSL est utilisé, Socket est le numéro de port du socket.

Il est également possible de spécifier une plage de ports séparée par un signe deux-points. DbgSrv case activée 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 serveur de processus est créé. Le client intelligent doit spécifier le port réel utilisé pour se connecter au serveur. Pour déterminer le port réel, utilisez l’une des méthodes décrites dans La recherche de serveurs de processus ; lorsque ce serveur de processus s’affiche, le port est suivi de deux nombres séparés par un deux-points. Le premier nombre sera le port réel utilisé ; la seconde peut être ignorée. Par exemple, si le port a été spécifié comme port=51 :60 et que le port 53 a été utilisé, les résultats de la recherche affichent « port=53 :60 ». (Si vous utilisez le paramètre clicon pour établir une connexion inversée, le client intelligent peut spécifier une plage de ports de cette manière, tandis que le serveur de processus 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 est ouverte. Cela signifie que le serveur de processus essaiera de se connecter au client intelligent, 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 la direction habituelle. Le client spécifie le nom réseau ou l’adresse IP de l’ordinateur sur lequel le client intelligent existe ou sera créé. Les deux barres obliques inverses initiales (\) sont facultatives.

Étant donné que le serveur de processus recherche un client spécifique, vous ne pouvez pas connecter plusieurs clients au serveur si vous utilisez cette méthode. Si la connexion est refusée ou est interrompue, vous devez redémarrer le serveur de processus. Un serveur de processus de connexion inversée n’apparaît pas lorsque quelqu’un utilise l’option de ligne de commande -QR pour afficher tous les serveurs actifs.

Note Lorsque clicon est utilisé, il est préférable de démarrer le client intelligent avant la création du serveur de processus, bien que l’ordre habituel (serveur avant 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.

baud=BaudRate
Lorsque le protocole COM est utilisé, BaudRate spécifie la vitesse de bauds à laquelle la connexion s’exécutera. Tout débit en bauds pris en charge par le matériel est autorisé.

channel=COMChannel
Si le protocole COM est utilisé, COMChannel spécifie le canal COM à utiliser pour communiquer avec le client de débogage. Il peut s’agir de n’importe quelle valeur comprise entre 0 et 254, inclus. Vous pouvez utiliser un seul port COM pour plusieurs connexions à l’aide de différents numéros de canal. (Cela diffère de l’utilisation d’un port COM pour un câble de débogage. Dans ce cas, vous ne pouvez pas utiliser de canaux dans un port COM.)

proto=Protocol
Si le protocole SSL ou SPIPE est utilisé, protocole spécifie le protocole de canal sécurisé (S-Channel). Il peut s’agir de n’importe quelle chaîne tls1, pct1, ssl2 ou ssl3.

Cert
Si le protocole SSL ou SPIPE est utilisé, Cert spécifie le certificat. Il peut s’agir du nom du certificat ou de l’empreinte numérique du certificat (chaîne de chiffres hexadécimaux donnés par l’alignement du certificat). Si la syntaxe certuser=Cert est utilisée, le débogueur recherche le certificat dans le magasin système (magasin par défaut). Si la syntaxe machuser=Cert est utilisée, le débogueur recherche le certificat dans le magasin d’ordinateurs. Le certificat spécifié doit prendre en charge l’authentification du serveur.

Cachés
Empêche le serveur de processus d’apparaître quand une personne utilise l’option de ligne de commande -QR pour afficher tous les serveurs actifs.

password=Password
Nécessite qu’un client intelligent fournisse le mot de passe spécifié pour se connecter au serveur de processus. Le mot de passe peut être n’importe quelle chaîne alphanumérique, d’une longueur maximale de douze caractères.

Avertissement L’utilisation d’un mot de passe avec le protocole TCP, NPIPE ou COM n’offre qu’une petite quantité de protection, car le mot de passe n’est pas chiffré. Lorsqu’un mot de passe est utilisé avec le protocole SSL ou SPIPE, il est chiffré. Si vous souhaitez établir une session à distance sécurisée, vous devez utiliser le protocole SSL ou SPIPE.

ipversion=6
(Outils de débogage pour Windows 6.6.07 et versions antérieures uniquement) 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 d’utiliser automatiquement la version IP par défaut 6, ce qui rend cette option inutile.

IcfEnable
Le débogueur active les connexions de port nécessaires pour la communication TCP ou de canal 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 . Quand IcfEnable est utilisé avec une connexion de canal nommé, le débogueur amène Windows à ouvrir les ports utilisés pour les canaux nommés (ports 139 et 445). Le débogueur ne ferme pas ces ports une fois la connexion terminée.

-sifeoExecutable
Suspend la valeur de l’option d’exécution de fichier d’image (IFEO) pour l’image donnée. L’exécutable doit inclure le nom de fichier de l’image exécutable, y compris les extensions de nom de fichier. L’option -sifeo permet à DbgSrv d’être défini en tant que débogueur IFEO pour une image créée par l’option -c , sans provoquer d’appel récursif dû au paramètre IFEO. Cette option ne peut être utilisée que si -c est utilisé.

-C
Entraîne la création d’un processus par DbgSrv. Vous pouvez l’utiliser pour créer un processus que vous envisagez de déboguer. Cela est similaire à la génération d’un processus à partir du débogueur, sauf que ce processus ne sera pas débogué lors de sa création. Pour déboguer ce processus, déterminez son PID et utilisez l’option -p lors du démarrage du client intelligent pour déboguer ce processus.

s
Entraîne la suspension immédiate du processus nouvellement créé. Si vous utilisez cette option, il est recommandé d’utiliser CDB comme client intelligent et de démarrer le client intelligent avec l’option de ligne de commande -pb , conjointement avec -p PID. Si vous incluez l’option -pb sur la ligne de commande, le processus reprendra lorsque le débogueur s’y attache ; sinon, vous pouvez reprendre le processus avec la commande ~*m .

AppCmdLine
Spécifie la ligne de commande complète du processus à créer. AppCmdLine peut être une chaîne Unicode ou ASCII et peut inclure n’importe quel caractère imprimable. Tout le texte qui apparaît après le paramètre -c[s] est utilisé pour former la chaîne AppCmdLine.

-X
Entraîne l’ignorer du reste de la ligne de commande. Cette option est utile si vous lancez DbgSrv à partir d’une application qui peut ajouter du texte indésirable à sa ligne de commande.

-Pc
Entraîne l’ignorer du reste de la ligne de commande. Cette option est utile si vous lancez DbgSrv à partir d’une application qui peut ajouter du texte indésirable à sa ligne de commande. Une erreur de syntaxe se produit si -pc est l’élément final sur la ligne de commande DbgSrv. Outre cette restriction, -pc est identique à -x.

Vous pouvez démarrer n’importe quel nombre de serveurs de processus sur un ordinateur. Toutefois, cela est généralement inutile, car un serveur de processus peut être utilisé par n’importe quel nombre de clients intelligents (chacun engagé dans une session de débogage différente).