Compartir a través de


Ejemplos del servidor de conexión KD

Supongamos que un técnico de depuración no está presente en el sitio donde se encuentra el equipo que se va a depurar. El técnico de depuración pide a alguien en este sitio que conecte este equipo de destino a otro equipo con un cable de depuración.

Deje que este otro equipo esté en la dirección IP 127.0.0.42. El cable de depuración conecta COM1 en este equipo a cualquier puerto habilitado para depurar en el equipo de destino. El servidor de conexión KD se inicia con este comando:

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

A continuación, en la otra ubicación, el técnico inicia WinDbg como un cliente inteligente con 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

La ruta de acceso del símbolo será relativa al equipo donde se ejecuta el cliente inteligente.

Aquí tiene otro ejemplo. En este caso, se elige el protocolo NPIPE y KD se usa en lugar de WinDbg. El primer usuario elige un nombre de canalización. Puede ser cualquier cadena alfanumérica: en este ejemplo, "KernelPipe". El primer usuario abre una ventana del símbolo del sistema con privilegios elevados (ejecutar como administrador) e inicia un servidor de depuración escribiendo estos comandos:

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

El técnico ha iniciado sesión en el equipo cliente con una cuenta que no tiene acceso al equipo servidor. Pero el técnico conoce el nombre de usuario y la contraseña de una cuenta que tiene acceso al equipo servidor. El nombre de usuario de esa cuenta es Contoso. El técnico escribe el siguiente comando:

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

Cuando se le solicite, el técnico escribe la contraseña de la cuenta de Contoso.

El técnico no está seguro de qué nombre se usó para la canalización con nombre, por lo que consultan 127.0.0.42 para los servidores de conexión 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

Se muestran tres tuberías. Sin embargo, solo uno es un servidor de conexión KD: los demás son un servidor de depuración y un servidor de procesos en modo de usuario. El técnico escribe el siguiente comando para iniciar el 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 aunque se especifica la velocidad de baudios, el puerto no es . Esto hace que el depurador se establezca de forma predeterminada en el puerto especificado por _NT_DEBUG_PORT en el equipo donde se ejecuta KdSrv.