Freigeben über


Beispiele für KD-Verbindungsserver

Angenommen, ein Debugtechniker ist nicht an dem Standort anwesend, an dem sich der zu debuggende Computer befindet. Der Debugtechniker bittet jemanden an dieser Website, diesen Zielcomputer mit einem Debugkabel mit einem anderen Computer zu verbinden.

Lassen Sie diesen anderen Computer die IP-Adresse 127.0.0.42 verwenden. Das Debugkabel verbindet COM1 auf diesem Computer mit dem auf dem Zielcomputer debugaktivierten Port. Der KD-Verbindungsserver wird mit diesem Befehl gestartet:

E:\Debugging Tools for Windows> kdsrv -t tcp:port=1027

Anschließend startet der Techniker winDbg am anderen Standort als smarten Client mit dem folgenden Befehl:

G:\Debugging Tools> windbg -k kdsrv:server=@{tcp:server=127.0.0.42,port=1027},trans=@{com:port=com1,baud=57600} -y SymbolPath

Der Symbolpfad ist relativ zu dem Computer, auf dem der smarte Client ausgeführt wird.

Hier ist ein weiteres Beispiel angegeben. In diesem Fall wird das NPIPE-Protokoll ausgewählt, und anstelle von WinDbg wird KD verwendet. Der erste Benutzer wählt einen Pipenamen aus. Dies kann eine beliebige alphanumerische Zeichenfolge sein– in diesem Beispiel "KernelPipe". Der erste Benutzer öffnet ein Eingabeaufforderungsfenster mit erhöhten Rechten (Als Administrator ausführen) und startet einen Debugserver, indem er die folgenden Befehle eingibt:

E:\Debugging Tools for Windows> set _NT_DEBUG_PORT=com1
E:\Debugging Tools for Windows> kdsrv -t npipe:pipe=KernelPipe

Der Techniker ist beim Clientcomputer mit einem Konto angemeldet, das keinen Zugriff auf den Servercomputer hat. Der Techniker kennt jedoch den Benutzernamen und das Kennwort für ein Konto, das Zugriff auf den Servercomputer hat. Der Benutzername für dieses Konto lautet Contoso. Der Techniker gibt den folgenden Befehl ein:

net use \\BOX17\ipc$ /user:Contoso

Wenn Sie dazu aufgefordert werden, gibt der Techniker das Kennwort für das Contoso-Konto ein.

Der Techniker ist sich nicht sicher, welcher Name für die benannte Pipe verwendet wurde, daher wird 127.0.0.42 für KD-Verbindungsserver abgefragt:

G:\Debugging Tools> cdb -QR 127.0.0.42
Servers on 127.0.0.42:
Debugger Server - npipe:Pipe=MainPipe
Remote Process Server - npipe:Pipe=AnotherPipe
Remote Kernel Debugger Server - npipe:Pipe=KernelPipe

Es werden drei Rohre angezeigt. Allerdings ist nur einer ein KD-Verbindungsserver – die anderen sind ein Debugserver und ein Prozessserver im Benutzermodus. Der Techniker gibt den folgenden Befehl ein, um den smarten Client zu starten:

G:\Debugging Tools> kd -k kdsrv:server=@{npipe:server=127.0.0.42,pipe=KernelPipe},trans=@{com:baud=57600} -y SymbolPath

Beachten Sie, dass zwar die Baudrate angegeben ist, der Port jedoch nicht. Dadurch wird der Debugger standardmäßig auf den Port festgelegt, der von _NT_DEBUG_PORT auf dem Computer angegeben wird, auf dem KdSrv ausgeführt wird.