Destinos
El motor del depurador admite la depuración de diferentes tipos de destinos, destinos en modo de usuario y 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 diferentes 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 a partir de un destino con WriteDumpFile2.
Destinos de live, User-Mode
El motor del depurador puede crear y asociarse 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. A continuación, 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 un servidor, es posible crear un cliente en un estado suspendido y adjuntarlo a un servidor que ya se está ejecutando, lo que permite establecer puntos de interrupción de servidor antes de que el cliente se ejecute y provoque operaciones de servidor.
Al desasociar de un proceso, el motor puede dejar opcionalmente el proceso en ejecución normalmente, eliminar el proceso o abandonarlo (dejando suspendido hasta que otro depurador se adjunte a él o se elimine).
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.
Destinos de live, Kernel-Mode
El método AttachKernel conecta el motor del depurador a un kernel de Windows.
Destinos remotos
Al usar el motor del depurador para depurar de forma remota, puede haber dos pasos adicionales:
Conéctese al motor host. Si el motor host no es la instancia del motor local, use DebugConnect para crear un objeto de cliente conectado al motor host.
Conecte el motor de host al servidor de procesos o al servidor de conexión 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 indicar al motor host que adquiera un destino a través del servidor de procesos o del servidor de conexión kernel.
Adquisición de destinos
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 true cuando el destino es un archivo de volcado de memoria, ya que siempre almacenan 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 asociar a destinos, consulte Conexión a destinos.