Exemplos de servidor de conexão KD
Suponha que um técnico de depuração não esteja presente no site em que o computador a ser depurado está localizado. O técnico de depuração solicita que alguém neste site conecte esse computador de destino a algum outro computador com um cabo de depuração.
Deixe que este outro computador esteja 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 em que o cliente inteligente está em execução.
Veja a seguir outro exemplo. Nesse caso, o protocolo NPIPE é escolhido e o KD é usado em vez de WinDbg. O primeiro usuário escolhe um nome de pipe. Pode ser qualquer cadeia de caracteres alfanumérica – neste exemplo, "KernelPipe". O primeiro usuário abre uma janela do Prompt de Comando com privilégios elevados (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 a 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 pipe nomeado, portanto, 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 pipes são mostrados. No entanto, apenas um é um servidor de conexão KD – os outros são um servidor de depuração e um servidor de processo no modo de usuário. O técnico insere o seguinte comando pode 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 baud seja especificada, a porta não é. Isso faz com que o depurador padrão para a porta especificada por _NT_DEBUG_PORT no computador em que o KdSrv está em execução.