Freigeben über


Aktivieren eines Debugging-Servers

Es gibt zwei Möglichkeiten, den Debugging-Server zu aktivieren. Er kann beim Start des Debuggers mit der Befehlszeilenoption -server in einem Fenster der Eingabeaufforderung mit erweiterten Rechten (Ausführen als Administrator) aktiviert werden. Er kann auch aktiviert werden, nachdem der Debugger ausgeführt wurde. Starten Sie den Debugger mit erhöhten Rechten (Ausführen als Administrator) und geben Sie den Befehl .server ein.

Hinweis Sie können einen Debugging-Server auch ohne erhöhte Rechte aktivieren und die Debugging-Clients können sich mit dem Server verbinden. Allerdings können Clients einen Debugging-Server nur dann erkennen, wenn er mit erhöhten Rechten aktiviert wurde. Informationen darüber, wie Sie Debugging-Server entdecken, finden Sie unter Suchen nach Debugging-Servern.

Die Debugger unterstützen verschiedene Transportprotokolle: Named Pipe (NPIPE), TCP, COM Port, Secure Pipe (SPIPE) und Secure Sockets Layer (SSL).

Die allgemeine Syntax zur Aktivierung eines Debugging-Servers hängt von dem verwendeten Protokoll ab.

Debugger -server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [-noio] [Options]

Debugger -server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [-noio] [Options]

Debugger -server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [-noio] [Options]

Debugger -server com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [-noio] [Options]

Debugger -server spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [-noio] [Options]

Debugger -server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [-noio] [Options]

Debugger -server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [-noio] [Options]

Eine andere Methode, einen Debugging-Server zu aktivieren, ist die Verwendung des Befehls .server (Debugging-Server erstellen), nachdem der Debugger bereits gestartet wurde.

.server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 

.server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] 

.server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] 

.server com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] 

.server spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] 

.server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] 

.server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] 

Die Parameter in den vorherigen Befehlen haben die folgenden möglichen Werte:

Debugger
Kann KD, CDB, NTSD oder WinDbg sein.

pipe= PipeName
Wenn das NPIPE- oder SPIPE-Protokoll verwendet wird, ist PipeName eine Zeichenfolge, die als Name der Pipe dient. Jeder Pipename sollte einen eindeutigen Debugserver identifizieren. Wenn Sie versuchen, einen Pipenamen wiederzuverwenden, wird eine Fehlermeldung angezeigt. PipeName darf keine Leerzeichen oder Anführungszeichen enthalten. PipeName kann einen numerischen Code im Stil von printf enthalten, z. B. %x oder %d. Der Debugger ersetzt dies durch die Prozess-ID des Debuggers. Ein zweiter Code dieser Art wird durch die Thread-ID des Debuggers ersetzt.

Hinweis Möglicherweise müssen Sie die Datei- und Druckerfreigabe auf dem Computer aktivieren, auf dem der Debugging-Server ausgeführt wird. Navigieren Sie in der Systemsteuerung zu Netzwerk und Internet > Netzwerk- und Freigabecenter> Erweiterte Freigabeeinstellungen. Wählen Sie Datei- und Druckerfreigabe aktivieren.

port= Steckdose
Wenn das TCP- oder SSL-Protokoll verwendet wird, ist Socket die Socketportnummer.

Es ist auch möglich, einen durch einen Doppelpunkt getrennten Portbereich anzugeben. Der Debugger überprüft jeden Port in diesem Bereich, um festzustellen, ob er frei ist. Wenn ein freier Port gefunden wird und kein Fehler auftritt, wird der Debugserver erstellt. Der Debugclient muss den tatsächlichen Port angeben, der zum Herstellen einer Verbindung mit dem Server verwendet wird. Um den tatsächlichen Port zu ermitteln, verwenden Sie eine der unter Suchen nach Debugservern beschriebenen Methoden. Wenn dieser Debugserver angezeigt wird, folgen auf den Port zwei durch einen Doppelpunkt getrennte Zahlen. Die erste Zahl wird als tatsächlicher Port verwendet; die zweite kann ignoriert werden. Wenn der Port zum Beispiel als Port=51:60 angegeben wurde und tatsächlich Port 53 verwendet wurde, wird in den Suchergebnissen „port=53:60“ angezeigt. (Wenn Sie den clicon-Parameter zum Herstellen einer umgekehrten Verbindung verwenden, kann der Debugclient einen Bereich von Ports auf diese Weise angeben, während der Server den tatsächlich verwendeten Port angeben muss.)

clicon= Kunde
Wenn das TCP- oder SSL-Protokoll verwendet wird und der clicon-Parameter angegeben wird, wird eine umgekehrte Verbindung geöffnet. Dies bedeutet, dass der Debugserver versucht, eine Verbindung mit dem Debugclient herzustellen, anstatt den Client den Kontakt initiieren zu lassen. Dies kann hilfreich sein, wenn Sie über eine Firewall verfügen, die eine Verbindung in die übliche Richtung verhindert. Client gibt den Netzwerknamen oder die IP-Adresse des Computers an, auf dem der Debugging-Client existiert oder erstellt werden soll. Die beiden anfänglichen Schrägstriche (\) sind optional.

Da der Server nach einem bestimmten Client sucht, können Sie nicht mehrere Clients mit dem Server verbinden, wenn Sie diese Methode verwenden. Wenn die Verbindung abgelehnt wird oder unterbrochen ist, müssen Sie die Serververbindung neu starten. Ein Server mit umgekehrter Verbindung wird nicht angezeigt, wenn ein anderer Debugger alle aktiven Server anzeigt.

Hinweis Wenn clicon verwendet wird, ist es am besten, den Debugging-Client zu starten, bevor der Debugging-Server erstellt wird, obwohl auch die übliche Reihenfolge (Server vor Client) zulässig ist.

port= COMPort
Wenn das COM-Protokoll verwendet wird, gibt COMPort den zu verwendenden COM-Port an. Das Präfix „COM“ ist optional -- zum Beispiel sind sowohl „com2“ als auch „2“ zulässig.

baud= BaudRate
Wenn das COM-Protokoll verwendet wird, gibt BaudRate die Baudrate an, mit der die Verbindung ausgeführt wird. Jede Baudrate, die von der Hardware unterstützt wird, ist zulässig.

channel= COMChannel
Wenn das COM-Protokoll verwendet wird, gibt COMChannel den COM-Kanal an, der für die Kommunikation mit dem Debugclient verwendet werden soll. Dies kann ein beliebiger Wert zwischen 0 und 254 sein. Sie können einen einzigen COM-Port für mehrere Verbindungen mit unterschiedlichen Kanalnummern verwenden. (Dies unterscheidet sich von der Verwendung eines COM-Ports für ein Debug-Kabel – in dieser Situation können Sie keine Kanäle innerhalb eines COM-Ports verwenden).

proto= Protokoll
Wenn das SSL- oder SPIPE-Protokoll verwendet wird, gibt Protocol das Secure Channel-Protokoll (S-Channel) an. Dies kann eine der Zeichenfolgen tls1, pct1, ssl2 oder ssl3 sein.

Cert
Wenn das SSL- oder SPIPE-Protokoll verwendet wird, gibt Cert das Zertifikat an. Dies kann entweder der Zertifikatname oder der Fingerabdruck des Zertifikats sein (die Zeichenfolge der hexadezimalen Ziffern, die vom Snap-In des Zertifikats angegeben werden). Wenn die Syntax certuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Systemspeicher (Standardspeicher). Wenn die Syntax machuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Computerspeicher. Das angegebene Zertifikat muss die Serverauthentifizierung unterstützen.

versteckt
Verhindert, dass der Server angezeigt wird, wenn ein anderer Debugger alle aktiven Server anzeigt.

password= Passwort
Erfordert, dass ein Client das angegebene Kennwort angibt, um sich mit der Debugging-Sitzung zu verbinden. Das Kennwort kann eine beliebige alphanumerische Zeichenfolge mit einer Länge von bis zu zwölf Zeichen sein.

Warnung Die Verwendung eines Kennworts mit dem TCP-, NPIPE- oder COM-Protokoll bietet nur einen geringen Schutz, da das Kennwort nicht verschlüsselt wird. Wenn ein Kennwort mit dem SSL- oder SPIPE-Protokoll verwendet wird, ist es verschlüsselt. Wenn Sie eine sichere Remote-Sitzung aufbauen möchten, müssen Sie das SSL- oder SPIPE-Protokoll verwenden.

ipversion=6
(Nur Debugtools für Windows 6.6.07 und frühere Versionen) Erzwingt, dass der Debugger IP-Version 6 anstelle von Version 4 verwendet, wenn TCP zum Herstellen einer Internetverbindung verwendet wird. In Windows Vista und höheren Versionen versucht der Debugger, die IP-Standardversion 6 automatisch zu verwenden, wodurch diese Option unnötig ist.

-noio
Wenn der Debugging-Server mit der Option -noio erstellt wird, kann keine Ein- oder Ausgabe über den Server selbst erfolgen. Der Debugger akzeptiert nur Eingaben vom Debugging-Client (sowie alle anfänglichen Befehle oder Befehlsskripte, die mit der Kommandozeilenoption -c angegeben wurden). Alle Ausgaben werden an den Debugging-Client weitergeleitet. Die Option -noio ist nur bei KD, CDB und NTSD verfügbar. Wenn NTSD für den Server verwendet wird, wird überhaupt kein Konsolenfenster erstellt.

IcfEnable
Bewirkt, dass der Debugger die erforderlichen Portverbindungen für die TCP- oder benannte Pipekommunikation aktiviert, wenn die Internetverbindungsfirewall aktiv ist. Standardmäßig deaktiviert die Internetverbindungsfirewall die von diesen Protokollen verwendeten Ports. Wenn IcfEnable mit einer TCP-Verbindung verwendet wird, veranlasst der Debugger Windows, den durch den Parameter Socket angegebenen Port zu öffnen. Wenn IcfEnable mit einer benannten Pipeverbindung verwendet wird, bewirkt der Debugger, dass Windows die Ports für benannte Pipes (Ports 139 und 445) öffnet. Der Debugger schließt diese Ports nicht, nachdem die Verbindung beendet wurde.

Optionen
Zusätzliche Kommandozeilenparameter können hier platziert werden. Eine vollständige Liste finden Sie unter Befehlszeilenoptionen.

Sie können den Befehl .server verwenden, um mehrere Server mit unterschiedlichen Protokolloptionen zu starten. Dies bietet die Möglichkeit, dass verschiedene Arten von Debugging-Clients der Sitzung beitreten können.

Weitere Informationen

Steuern einer Remote-Debugging-Sitzung

.endsrv (Debugging-Server beenden)