Objetos de cliente

Casi toda la interacción con el motor del depurador es a través de objetos de cliente, a menudo denominados simplemente clientes. Cada cliente proporciona una implementación de las interfaces de motor de nivel superior. Cada interfaz proporciona un conjunto diferente de métodos, que se pueden usar para interactuar con el motor y, a través del motor, los destinos. Una instancia del motor puede tener muchos clientes, cada uno con su propio estado.

Clientes principales

Un cliente principal es un cliente que se ha unido a la sesión de depuración actual. Inicialmente, cuando se crea un nuevo objeto de cliente, no es un cliente principal. Un cliente se convierte en un cliente principal cuando se usa para adquirir un destino (por ejemplo, mediante una llamada a CreateProcess2) o se conecta a la sesión de depuración mediante ConnectSession. El comando del depurador .clients muestra solo los clientes principales.

Objetos de devolución de llamada

Los objetos de devolución de llamada se pueden registrar con cada cliente. Hay tres tipos de objetos de devolución de llamada:

  1. Objetos de devolución de llamada de entrada (o devoluciones de llamada de entrada): el motor llama a devoluciones de llamada de entrada para solicitar la entrada. Por ejemplo, un depurador con una ventana de consola podría registrar una devolución de llamada de entrada para proporcionar al motor la entrada del usuario, o un depurador podría registrar una devolución de llamada de entrada para proporcionar al motor la entrada de un archivo.

  2. Objetos de devolución de llamada de salida (o devoluciones de llamada de salida): el motor llama a devoluciones de llamada de salida para mostrar la salida. Por ejemplo, un depurador con una ventana de consola podría registrar una devolución de llamada de salida para presentar la salida del depurador al usuario, o un depurador podría registrar una devolución de llamada de salida para enviar la salida a un archivo de registro.

  3. Objetos de devolución de llamada de eventos (o devoluciones de llamada de eventos): el motor llama a devoluciones de llamada de eventos cada vez que se produce un evento en un destino (o hay un cambio en el estado del motor). Por ejemplo, una biblioteca de extensiones del depurador podría registrar una devolución de llamada de eventos para supervisar determinados eventos o realizar acciones automatizadas cuando se produce un evento determinado.

Depuración remota

Los objetos cliente facilitan la comunicación con instancias remotas del motor host. La función DebugConnect crea un objeto de cliente que está conectado a una instancia del motor remoto; Los métodos llamados en este cliente se ejecutan mediante el motor remoto y los objetos de devolución de llamada registrados localmente con el cliente se llamarán cuando el motor remoto realice llamadas de devolución de llamada.

Información adicional

Para obtener más información sobre cómo crear y usar objetos de cliente, vea Uso de objetos de devolución de llamada. Para obtener más información sobre cómo registrar objetos de devolución de llamada, vea Uso de objetos de devolución de llamada.