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, einen smarten Client zu starten: durch Starten von CDB oder WinDbg mit der Befehlszeilenoption -premote oder mithilfe der grafischen WinDbg-Benutzeroberfläche.

Das Protokoll des smarten Clients muss mit dem Protokoll des Prozessservers übereinstimmen. Die allgemeine Syntax zum Starten eines smarten Clients hängt vom verwendeten Protokoll ab. Es gibt folgende Optionen:

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]

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

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]

Um die grafische Benutzeroberfläche zum Herstellen einer Verbindung mit einem Prozessserver zu verwenden, muss sich WinDbg im ruhenden Modus befinden. Es muss entweder ohne Befehlszeilenparameter gestartet oder die vorherige Debugsitzung beendet worden sein. Wählen Sie die Datei | Menübefehl "Verbindung mit Remotestub herstellen ". Wenn das Dialogfeld Verbindung mit Remotestubserver herstellen angezeigt wird, geben Sie eine der folgenden Zeichenfolgen in das Textfeld Verbindungszeichenfolge ein:

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] 

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] 

Alternativ können Sie die Schaltfläche Durchsuchen verwenden, um aktive Prozessserver zu suchen.

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 umgekehrten Schrägstriche (\) sind in der Befehlszeile optional, im Dialogfeld WinDbg jedoch nicht zulässig.

pipe=PipeName
Wenn das NPIPE- oder SPIPE-Protokoll verwendet wird, ist PipeName der Name, der der Pipe beim Erstellen des Prozessservers zugewiesen wurde.

Wenn Sie nicht 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 der Name eines Kontos, das Zugriff auf den Servercomputer hat.

Wenn Sie dazu aufgefordert werden, geben Sie das Kennwort für UserName ein.

Nachdem dieser Befehl erfolgreich ausgeführt wurde, können Sie einen smarten Client mithilfe der Befehlszeilenoption -premote oder mithilfe der grafischen WinDbg-Benutzeroberfläche aktivieren.

Hinweis Möglicherweise müssen Sie die Datei- und Druckerfreigabe auf dem Servercomputer aktivieren. Navigieren Sie in Systemsteuerung zu Netzwerk- und Internetnetzwerk > und Freigabecenter> Erweiterte Freigabeeinstellungen. Wählen Sie Datei- und Druckerfreigabe aktivieren aus.

port=Socket
Wenn das 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 umgekehrte Verbindung eine Verbindung mit dem smarten Client herzustellen. Der Client muss clicon nur verwenden, wenn der Server clicon verwendet. In den meisten Fällen wird der smarte Client vor dem Prozessserver gestartet, wenn eine umgekehrte Verbindung verwendet wird.

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, sollte BaudRate mit der baud-Rate übereinstimmen, die beim Erstellen des Prozessservers ausgewählt wurde.

channel=COMChannel
Wenn das COM-Protokoll verwendet wird, sollte COMChannel mit der Kanalnummer übereinstimmen, die beim Erstellen des Prozessservers ausgewählt wurde.

proto=Protokoll
Wenn das SSL- oder SPIPE-Protokoll verwendet wird, sollte das Protokoll mit dem sicheren Protokoll übereinstimmen, das beim Erstellen des Prozessservers verwendet wurde.

Cert
Wenn das SSL- oder SPIPE-Protokoll verwendet wird, sollten Sie den identischen Parameter certuser=Cert oder machuser=Cert verwenden, der beim Erstellen des Prozessservers verwendet wurde.

password=Password
Wenn beim Erstellen des Prozessservers ein Kennwort verwendet wurde, muss das Kennwort angegeben werden, um den smarten Client zu erstellen. Es muss mit dem ursprünglichen Kennwort übereinstimmen. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Wenn das falsche Kennwort angegeben wird, wird in der Fehlermeldung "Fehler 0x80004005" angegeben.

ipversion=6
(Debugtools für Windows 6.6.07 und früher) Erzwingt, dass der Debugger 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.

Optionen
Alle zusätzlichen Befehlszeilenparameter können hier platziert werden. Eine vollständige Liste finden Sie unter Befehlszeilenoptionen . Wenn Sie CDB verwenden, muss der Prozess angegeben werden, den Sie debuggen möchten. Wenn Sie WinDbg verwenden, können Sie den Prozess über die Befehlszeile oder über die grafische Benutzeroberfläche angeben.

Da der Prozessserver einfach als Gateway für den smarten Client fungiert, entsprechen die zusätzlichen Optionen 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 (An den Prozess anhängen) oder .create (Create Process) verwenden, sind die Parameter identisch mit den oben aufgeführten Parametern.

Problembehandlung

Wenn diese Meldung angezeigt wird: Der Client verwendet nicht dieselbe Version des Remotingprotokolls wie der Server , gibt dies an, 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 (klassisch) oder WinDbg verwenden. Informationen zum Herunterladen der neuesten Version finden Sie unter Debugtools für Windows.