Aktivieren eines Debugservers

Es gibt zwei Möglichkeiten, den Debugserver zu aktivieren. Sie kann aktiviert werden, wenn der Debugger gestartet wird, indem Sie die Befehlszeilenoption -server in einem Eingabeaufforderungsfenster mit erhöhten Rechten verwenden (Als Administrator ausführen). Es kann auch aktiviert werden, nachdem der Debugger ausgeführt wird. Starten Sie den Debugger mit erhöhten Rechten (Als Administrator ausführen), und geben Sie den Befehl SERVER ein .

Hinweis Sie können einen Debugserver ohne erhöhte Berechtigungen aktivieren, und Debugclients können eine Verbindung mit dem Server herstellen. Clients können jedoch keinen Debugserver ermitteln, es sei denn, er wurde mit erhöhten Rechten aktiviert. Informationen zum Ermitteln von Debugservern finden Sie unter Suchen nach Debugservern.

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

Die allgemeine Syntax zum Aktivieren eines Debugservers hängt vom 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 weitere Methode zum Aktivieren eines Debugservers besteht darin, den Befehl .server (Debugserver erstellen) zu verwenden, 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 weisen die folgenden möglichen Werte auf:

Debugger
Kann KD, CDB, NTSD oder WinDbg sein.

pipe=PipeName
Wenn 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, erhalten Sie eine Fehlermeldung. PipeName darf keine Leerzeichen oder Anführungszeichen enthalten. PipeName kann einen numerischen Formatcode im Printf-Format enthalten, z. B. %x oder %d. Der Debugger ersetzt diese durch die Prozess-ID des Debuggers. Ein zweiter solcher Code 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 Debugserver ausgeführt wird. Navigieren Sie in Systemsteuerung zu Netzwerk- und Internetnetzwerk > und Freigabecenter> Erweiterte Freigabeeinstellungen. Wählen Sie Datei- und Druckerfreigabe aktivieren aus.

port=Socket
Bei Verwendung des TCP- oder SSL-Protokolls ist Socket die Socketportnummer.

Es ist auch möglich, einen Bereich von Ports anzugeben, die durch einen Doppelpunkt getrennt sind. 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, werden dem Port zwei durch einen Doppelpunkt getrennte Zahlen gefolgt. Die erste Zahl ist der tatsächlich verwendete Port. die zweite kann ignoriert werden. Wenn der Port beispielsweise als port=51:60 angegeben wurde und Port 53 tatsächlich verwendet wurde, wird in den Suchergebnissen "port=53:60" angezeigt. (Wenn Sie den clicon-Parameter verwenden, um eine umgekehrte Verbindung herzustellen, kann der Debugclient einen Bereich von Ports auf diese Weise angeben, während der Server den tatsächlich verwendeten Port angeben muss.)

clicon=Client
Wenn das TCP- oder SSL-Protokoll verwendet 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 Kontakt vom Client initiieren zu lassen. Dies kann nützlich sein, wenn Sie über eine Firewall verfügen, die eine Verbindung in der üblichen Richtung verhindert. Client gibt den Netzwerknamen oder die IP-Adresse des Computers an, auf dem sich der Debugclient befindet oder erstellt wird. Die beiden ersten umgekehrten 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 verweigert oder unterbrochen wird, müssen Sie die Serververbindung neu starten. Ein Reverseverbindungsserver wird nicht angezeigt, wenn ein anderer Debugger alle aktiven Server anzeigt.

Hinweis Wenn clicon verwendet wird, ist es am besten, den Debugclient zu starten, bevor der Debugserver erstellt wird, obwohl die übliche Reihenfolge (Server vor Client) ebenfalls 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. Beispielsweise sind sowohl "com2" als auch "2" akzeptabel.

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, einschließlich. Sie können einen einzelnen COM-Port für mehrere Verbindungen mit unterschiedlichen Kanalnummern verwenden. (Dies unterscheidet sich von der Verwendung eines COM-Ports für ein Debugkabel. 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-Kanal) an. Dies kann eine beliebige 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 Hexadezimalziffern, die durch das Snapin des Zertifikats angegeben wird). Wenn die Syntax certuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Systemspeicher (dem Standardspeicher). Wenn die Syntax machuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Computerspeicher. Das angegebene Zertifikat muss die Serverauthentifizierung unterstützen.

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

password=Password
Erfordert, dass ein Client das angegebene Kennwort angibt, um eine Verbindung mit der Debugsitzung herzustellen. Das Kennwort kann eine beliebige alphanumerische Zeichenfolge sein, die bis zu zwölf Zeichen lang ist.

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

ipversion=6
(Debugtools nur für Windows 6.6.07 und früher) Erzwingt, dass der Debugger die IP-Version 6 anstelle von Version 4 verwendet, wenn TCP zum Herstellen einer Verbindung mit dem Internet verwendet wird. In Windows Vista und höheren Versionen versucht der Debugger, die IP-Version 6 automatisch standardmäßig zu verwenden, sodass diese Option nicht erforderlich ist.

-noio
Wenn der Debugserver mit der Option -noio erstellt wird, kann keine Eingabe oder Ausgabe über den Server selbst erfolgen. Der Debugger akzeptiert nur Eingaben vom Debugclient (plus alle anfänglichen Befehle oder Skripts, die durch die Befehlszeilenoption -c angegeben werden). Die gesamte Ausgabe wird an den Debugclient weitergeleitet. Die Option -noio ist nur mit 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 Named Pipe-Kommunikation 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, bewirkt der Debugger, dass Windows den vom Socket-Parameter angegebenen Port öffnet. Wenn IcfEnable mit einer Named Pipe-Verbindung verwendet wird, bewirkt der Debugger, dass Windows die ports öffnet, die für Named Pipes (Ports 139 und 445) verwendet werden. Der Debugger schließt diese Ports nicht, nachdem die Verbindung beendet wurde.

Optionen
Alle zusätzlichen Befehlszeilenparameter können hier platziert werden. Eine vollständige Liste finden Sie unter Befehlszeilenoptionen .

Sie können den .server-Befehl verwenden, um mehrere Server mit unterschiedlichen Protokolloptionen zu starten. Dadurch können verschiedene Arten von Debugclients an der Sitzung teilnehmen.

Weitere Informationen

Steuern einer Remotedebuggingsitzung

.endsrv (Enddebuggingserver)