Destinos remotos
Hay dos formas diferentes de depuración remota, según el equipo (cliente remoto o servidor) que sea el equipo host. El equipo host es el equipo en el que está activo el motor del depurador . En el otro equipo, el motor del depurador simplemente actúa como comandos de retransmisión de proxy y datos al motor host.
El motor host realiza todas las operaciones del depurador, como ejecutar comandos y extensiones, y cargar símbolos. Una sesión del depurador también es relativa al motor host.
Para enumerar los servidores de depuración y los servidores de procesos que se ejecutan actualmente en un equipo, use OutputServers.
Depuración de servidores y clientes de depuración
Un servidor de depuración es una instancia del motor del depurador que actúa como host y escucha las conexiones de los clientes de depuración. El método StartServer indicará al motor del depurador que empiece a escuchar las conexiones de los clientes de depuración.
Un cliente de depuración es una instancia del motor del depurador que actúa como proxy, enviando comandos de depurador y E/S al servidor de depuración. La función DebugConnect se puede usar para conectarse al servidor de depuración.
El objeto de cliente devuelto por DebugConnect no se une automáticamente a la sesión del depurador en el servidor de depuración. El método ConnectSession se puede usar para unirse a la sesión, sincronizar la entrada y la salida.
La comunicación entre un servidor de depuración y un cliente de depuración consiste principalmente en comandos del depurador y llamadas RPC enviadas al servidor y la salida del comando enviada de nuevo al cliente.
Servidores de procesos, servidores de conexión de kernel y clientes inteligentes
Los servidores de procesos y los servidores de conexión kernel son instancias del motor del depurador que actúa como servidores proxy, escuchando conexiones de clientes inteligentes y realizando operaciones de memoria, procesador o sistema operativo según lo solicite estos clientes remotos. Un servidor de procesos facilita la depuración de procesos que se ejecutan en el mismo equipo. Un servidor de conexión kernel facilita la depuración de un destino de depuración de kernel de Windows que está conectado al equipo que ejecuta el servidor de conexión. Se puede iniciar un servidor de procesos mediante el método StartProcessServer o el programa DbgSrv. El método WaitForProcessServerEnd esperará a que finalice un servidor de procesos iniciado con StartProcessServer . Se puede activar un servidor de conexión kernel mediante el programa KdSrv.
Un cliente inteligente es una instancia del motor del depurador que actúa como motor host y está conectado a un servidor de procesos. El método ConnectProcessServer se conectará a un servidor de procesos. Una vez conectado, se pueden usar los métodos descritos en Live User-Mode Targets .
Cuando el cliente remoto finaliza con el servidor de procesos, puede desconectarse mediante DisconnectProcessServer o puede usar EndProcessServer para solicitar que se apague el servidor de procesos. Para apagar el servidor de procesos desde el equipo en el que se ejecuta, use el Administrador de tareas para finalizar el proceso. Si la instancia del motor del depurador que usó StartProcessServer sigue en ejecución, puede usar Execute para emitir el comando del depurador .endsrv 0, que finalizará el servidor de procesos (esta es una excepción al comportamiento habitual de .endsrv, que generalmente no afecta a los servidores de procesos).
La comunicación entre un servidor de procesos y un cliente inteligente normalmente consta de operaciones de sistema operativo, procesador y memoria de bajo nivel que se envían desde el cliente remoto al servidor. A continuación, sus resultados se devuelven al cliente.