Partilhar via


Exemplos de servidor de conexão KD

Suponha que um técnico de depuração não esteja presente no local onde está localizado o computador sujeito a depuração. O técnico de depuração pede a alguém neste site para conectar este computador de destino a algum outro computador com um cabo de depuração.

Deixe este outro computador estar no endereço IP 127.0.0.42. O cabo de depuração conecta COM1 neste computador a qualquer porta que tenha sido habilitada para depuração no computador de destino. O servidor de conexão KD é iniciado com este comando:

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

Em seguida, no outro local, o técnico inicia o WinDbg como um cliente inteligente com este comando:

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

O caminho do símbolo será relativo ao computador onde o cliente inteligente está sendo executado.

Eis outro exemplo. Neste caso, o protocolo NPIPE é escolhido e o KD é usado em vez do WinDbg. O primeiro utilizador escolhe um nome de pipe. Isso pode ser qualquer string alfanumérica -- neste exemplo, "KernelPipe". O primeiro usuário abre uma janela elevada do Prompt de Comando (Executar como Administrador) e inicia um servidor de depuração inserindo estes comandos:

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

O técnico está conectado ao computador cliente com uma conta que não tem acesso ao computador servidor. Mas o técnico sabe o nome de usuário e senha de uma conta que tem acesso ao computador servidor. O nome de usuário dessa conta é Contoso. O técnico insere o seguinte comando:

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

Quando solicitado, o técnico insere a senha da conta da Contoso.

O técnico não tem certeza de qual nome foi usado para o canal nomeado, então ele consulta 127.0.0.42 para servidores de conexão KD:

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

Três tubos são mostrados. No entanto, apenas um é um servidor de ligação KD -- os outros são um servidor de depuração e um servidor de processos em modo de utilizador. O técnico insere o seguinte comando para iniciar o cliente inteligente:

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

Observe que, embora a taxa de transmissão seja especificada, a porta não é. Isso faz com que o depurador use como padrão a porta especificada por _NT_DEBUG_PORT no computador em que o KdSrv está sendo executado.