Compartir a través de


ICorDebugManagedCallback2::MDANotification (Método)

Notifica que la ejecución de código ha encontrado un asistente para la depuración administrada (MDA) en la aplicación que se está depurando.

HRESULT MDANotification(
    [in] ICorDebugController  *pController,
    [in] ICorDebugThread      *pThread,
    [in] ICorDebugMDA         *pMDA
);

Parámetros

  • pController
    [in] Puntero a una interfaz ICorDebugController que expone el proceso o dominio de aplicación en el que se encuentra el asistente para depuración administrada.

    Un depurador no debería suponer si el controlador es un proceso o un dominio de aplicación, aunque siempre puede consultar la interfaz para determinarlo.

  • pThread
    [in] Puntero a una interfaz ICorDebugThread que expone el subproceso administrado en el que ocurrió el evento de depuración.

    Si el asistente para la depuración administrada se produjera en un subproceso no administrado, el valor de pThread sería null.

    Debe obtener el id. de subproceso del sistema operativo en el objeto MDA.

  • pMDA
    [in] Puntero a una interfaz ICorDebugMDA que expone la información del Asistente para depuración administrada.

Comentarios

Un Asistente para depuración administrada es un aviso heurístico y no requiere ninguna acción del depurador explícita salvo llamar a ICorDebugController::Continue para reanudar la ejecución de la aplicación que se está depurando.

Common Language Runtime (CLR) puede determinar qué MDA se desencadena y qué datos están en un asistente para la depuración administrada determinado en cualquier momento. Por consiguiente, los depuradores no deberían compilar funcionalidad que requiera modelos de MDA concretos.

Los asistentes para la depuración administrada. se pueden poner en cola y desencadenarse poco después de que se encuentre el asistente para la depuración administrada. Esto podría pasar si el motor en tiempo de ejecución tiene que esperar hasta llegar a un punto seguro para desencadenar el MDA, en lugar de hacerlo cuando lo encuentra. También significa que el motor en tiempo de ejecución puede desencadenar varios MDA en un conjunto único de devoluciones de llamada en cola (similar a una operación de asociación de evento).

Un depurador debería liberar inmediatamente la referencia a una instancia de ICorDebugMDA después de volver de la devolución de llamada de MDANotification, para permitir que el CLR recicle la memoria utilizada por un MDA. Liberar la instancia puede mejorar el rendimiento si se desencadenan muchos MDA.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

ICorDebugManagedCallback2 (Interfaz)

ICorDebugManagedCallback (Interfaz)

Conceptos

Diagnóstico de errores con ayudantes de depuraciones administradas