Aktivieren eines smarten Clients
Nachdem der DbgSrv-Prozessserver aktiviert wurde, können Sie einen intelligenten Client auf einem anderen Computer erstellen und eine Debugsitzung starten.
Es gibt zwei Möglichkeiten zum Starten eines intelligenten Clients: durch Starten von CDB oder WinDbg mit der -premote Befehlszeilenoptionoder mithilfe der grafischen Benutzeroberfläche von WinDbg.
Wichtig
Bei der Verwendung des Remotedebuggings gibt es wichtige Sicherheitsaspekte. Weitere Informationen, einschließlich Informationen zum Aktivieren des sicheren Modus, finden Sie unter Sicherheit beim Remotedebugging und Sicherheitsüberlegungen für Windows-Debuggingtools.
Das Protokoll des SmartClients muss mit dem Protokoll des Prozessservers übereinstimmen. Die allgemeine Syntax für das Starten eines smarten Clients hängt vom verwendeten Protokoll ab. Die folgenden Optionen sind vorhanden:
Empfohlenen Verbindungsmethoden mit einigen zusätzlichen Sicherheits-
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]
Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]
unsicheren Verbindungsmethoden
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]
Um die grafische Schnittstelle zum Herstellen einer Verbindung mit einem Prozessserver zu verwenden, muss WinDbg im ruhenden Modus sein – entweder ohne Befehlszeilenparameter gestartet worden sein oder die vorherige Debugsitzung beendet haben muss. Wählen Sie die Datei | Herstellen einer Verbindung mit remote stub Menübefehl. Wenn das Dialogfeld Verbindung mit Remote-Stubserver angezeigt wird, geben Sie eine der folgenden Zeichenfolgen in das Textfeld Verbindungszeichenfolge ein:
Empfohlenen Verbindungsmethoden mit einigen zusätzlichen Sicherheits-
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]
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]
unsicheren Verbindungsmethoden
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]
Alternativ können Sie die Schaltfläche Durchsuchen verwenden, um aktive Prozessserver zu finden.
Die Parameter in den vorherigen Befehlen weisen die folgenden möglichen Werte auf:
Debugger-
Dies kann CDB oder WinDbg sein.
Server-
Dies ist der Netzwerkname oder die IP-Adresse des Computers, auf dem der Prozessserver erstellt wurde. Die beiden anfänglichen Schrägstriche (\) sind in der Befehlszeile optional, sind aber im Dialogfeld WinDbg nicht zulässig.
pipe=PipeName
Wenn NPIPE- oder SPIPE-Protokoll verwendet wird, ist PipeName- der Name, der der Pipe beim Erstellen des Prozessservers zugewiesen wurde.
Wenn Sie nicht bei dem Clientcomputer mit einem Konto angemeldet sind, das Zugriff auf den Servercomputer hat, müssen Sie einen Benutzernamen und ein Kennwort angeben. Geben Sie auf dem Clientcomputer in einem Eingabeaufforderungsfenster den folgenden Befehl ein.
Net use \\Server\ipc$ /user:UserName
dabei ist Server- der Name des Servercomputers, und UserName- ist der Name eines Kontos, das Zugriff auf den Servercomputer hat.
Wenn Sie dazu aufgefordert werden, geben Sie das Kennwort für UserNameein.
Nachdem dieser Befehl erfolgreich ausgeführt wurde, können Sie einen intelligenten Client mithilfe der -premote- Befehlszeilenoption oder mithilfe der grafischen Benutzeroberfläche von WinDbg aktivieren.
Hinweis Möglicherweise müssen Sie die Datei- und Druckerfreigabe auf dem Servercomputer aktivieren. Navigieren Sie in der Systemsteuerung zu Netzwerk- und Internet-> Netzwerk- und Freigabecenter> Erweiterte Freigabeeinstellungen. Wählen Sie Datei- und Druckerfreigabeaktivieren.
Port=Socket-
Wenn TCP- oder SSL-Protokoll verwendet wird, ist Socket- die gleiche Socketportnummer, die beim Erstellen des Prozessservers verwendet wurde.
clicon
Gibt an, dass der Prozessserver versucht, über eine Reverseverbindung eine Verbindung mit dem Smart Client herzustellen. Der Client muss clicon verwenden, wenn und nur, wenn der Server cliconverwendet. In den meisten Fällen wird der Intelligente Client vor dem Prozessserver gestartet, wenn eine Reverseverbindung verwendet wird.
port=COMPort-
Wenn COM-Protokoll verwendet wird, gibt COMPort- den zu verwendenden COM-Port an. Das Präfix "COM" ist optional , z. B. sind sowohl "com2" als auch "2" zulässig.
baud=BaudRate
Wenn COM-Protokoll verwendet wird, sollte BaudRate- mit der beim Erstellen des Prozessservers gewählten Baudrate übereinstimmen.
Channel=COMChannel
Wenn COM-Protokoll verwendet wird, sollte COMChannel- mit der Kanalnummer übereinstimmen, die beim Erstellen des Prozessservers ausgewählt wurde.
proto=Protocol
Wenn SSL- oder SPIPE-Protokoll verwendet wird, sollte -Protokoll- mit dem sicheren Protokoll übereinstimmen, das beim Erstellen des Prozessservers verwendet wird.
Cert-
Wenn SSL- oder SPIPE-Protokoll verwendet wird, sollten Sie den identischen certuser=Cert oder machuser=Cert Parameter verwenden, der beim Erstellen des Prozessservers verwendet wurde.
password=Password
Wenn beim Erstellen des Prozessservers ein Kennwort verwendet wurde, müssen Kennwort- angegeben werden, um den SmartClient zu erstellen. Es muss mit dem ursprünglichen Kennwort übereinstimmen. Bei Kennwörtern wird zwischen Groß- und Kleinschreibung unterschieden. Wenn das falsche Kennwort angegeben wird, gibt die Fehlermeldung "Fehler 0x80004005" an.
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.
Optionen
Hier können alle zusätzlichen Befehlszeilenparameter platziert werden. Eine vollständige Liste finden Sie unter Command-Line Optionen. Wenn Sie CDB verwenden, muss dies den Prozess angeben, den Sie debuggen möchten. Wenn Sie WinDbg verwenden, können Sie den Prozess in der Befehlszeile oder über die grafische Benutzeroberfläche angeben.
Da der Prozessserver einfach als Gateway für den smarten Client fungiert, sind die zusätzlichen Optionen identisch mit denen, die Sie verwenden würden, wenn Sie einen Benutzermodusdebugger auf demselben Computer wie die Zielanwendung starten würden.
Wenn Sie die Option -premote mit .attach (Attach to Process) oder .create (Create Process)verwenden, sind die Parameter identisch mit den oben aufgeführten.
Wenn diese Meldung angezeigt wird: Der Client verwendet nicht dieselbe Version des Remotingprotokolls wie der Server dies bedeutet, dass die Version von DbgSrv, mit der Sie eine Verbindung herstellen möchten, eine andere Protokollversion als die Version von WinDbg verwendet.
Es ist ungewöhnlich, dass Protokolländerungen vorgenommen werden. Stellen Sie in diesem Fall sicher, dass Sie die übereinstimmenden Versionen der neuesten verfügbaren Version von DbgSrv und WinDbg (Classic) oder WinDbg verwenden. Informationen zum Herunterladen der neuesten Version finden Sie unter Debugtools für Windows.