Compartir a través de


Objetivos

El motor del depurador admite la depuración de diferentes tipos de destinos, destinos en modo de usuario y en modo kernel , destinos activos y archivos de volcado de memoria, y destinos locales y remotos. Hay diferentes métodos para conectar el motor a estos distintos tipos de destinos.

Archivos de volcado de memoria

Tanto el modo de usuario como los archivos de volcado de memoria en modo kernel se abren con OpenDumpFile. El motor también puede crear archivos de volcado de memoria a partir de un destino con WriteDumpFile2.

En vivo, User-Mode Targets

El motor del depurador puede crear y adjuntar a procesos en modo de usuario.

Para crear un proceso, se proporciona una línea de comandos y, opcionalmente, un directorio inicial y un entorno para el nuevo proceso. Después, el motor puede conectarse al nuevo proceso o mantener suspendido el nuevo proceso mientras se conecta a otro proceso. Por ejemplo, al depurar una aplicación que consta de un cliente y servidor, es posible crear un cliente en un estado suspendido y adjuntar a un servidor que ya está en ejecución, lo que permite establecer puntos de interrupción de servidor antes de que el cliente se ejecute y provoque operaciones de servidor.

Al desasociarse de un proceso, el motor puede dejar opcionalmente el proceso ejecutándose normalmente, finalizar el proceso o abandonar el proceso (dejándolo suspendido hasta que otro depurador se conecte a él o se finalice).

El motor se puede consultar para obtener información sobre todos los procesos en modo de usuario que se ejecutan en el equipo, incluido el identificador de proceso y el nombre de la imagen ejecutable que se usa para iniciar el proceso. Esta información se puede usar para ayudar a localizar un proceso para depurar.

En vivo, Kernel-Mode Targets

El método AttachKernel conecta el motor del depurador a un kernel de Windows.

Destinos remotos

Al utilizar el motor del depurador para depurar de forma remota, puede haber potencialmente dos pasos adicionales:

  1. Conéctese al motor host. Si el motor host no es la instancia del motor local, use DebugConnect para crear un objeto de cliente que esté conectado al motor host.

  2. Conecte el motor anfitrión al servidor de procesos o al servidor de conexión del kernel. Si el motor host no se conecta directamente al destino, debe conectarse a un servidor de procesos o a un servidor de conexión kernel que sí lo haga.

Ahora el cliente puede solicitar al motor host que adquiera un objetivo a través del servidor de procesos o el servidor de conexión del kernel.

Adquisición de objetivos

Al adquirir un destino, la adquisición del destino no se completa hasta que el destino genera un evento. Normalmente, esto significa llamar primero a un método para adjuntar el depurador al destino y, a continuación, llamar a WaitForEvent para permitir que el destino genere un evento. Esto sigue siendo cierto cuando el destino es un archivo de volcado de memoria, ya que siempre almacena un evento, normalmente el evento que provocó la creación del archivo de volcado.

información adicional

Para obtener más información sobre cómo asociarse a destinos, consulte Conexión a destinos.