ICorDebugManagedCallback2::MDANotification (Método)
Proporciona una notificación de que la ejecución de código ha encontrado un asistente para depuración administrada (MDA) en la aplicación que se está depurando.
Sintaxis
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 el dominio de aplicación en el que se produjo el MDA.
Un depurador no debe realizar ninguna suposición sobre si el controlador es un proceso o un dominio de aplicación, aunque siempre puede consultar la interfaz para realizar una determinación.
pThread
[in] Puntero a una interfaz ICorDebugThread que expone el subproceso administrado en el que se produjo el evento de depuración.
Si el MDA se ha producido en un subproceso no administrado, el valor de pThread
será null.
Debe obtener el id. de subproceso del sistema operativo (SO) del propio objeto del MDA.
pMDA
[in] Puntero a una interfaz ICorDebugMDA que expone la información de MDA .
Comentarios
Un MDA es una advertencia heurística y no requiere ninguna acción explícita del depurador, excepto para llamar a ICorDebugController::Continue a fin de reanudar la ejecución de la aplicación que se está depurando.
Common Language Runtime (CLR) puede determinar qué MDA se activan y qué datos se encuentran en cualquier MDA determinado en cualquier momento. Por lo tanto, los depuradores no deben crear ninguna función que requiera patrones de MDA específicos.
Los MDA se pueden poner en cola y activarse poco después de que se encuentre el MDA. Esto podría ocurrir si el runtime necesita esperar hasta que alcance un punto seguro para activar el MDA, en lugar de activarlo cuando lo encuentre. También significa que el runtime puede desencadenar una serie de MDA en un único conjunto de devoluciones de llamada en cola (similar a una operación de evento "attach").
Un depurador debe liberar la referencia a una instancia de ICorDebugMDA
inmediatamente después de volver de la devolución de llamada de MDANotification
, para permitir que CLR recicle la memoria que ha consumido un MDA. Liberar la instancia puede mejorar el rendimiento si se activan muchos MDA.
Requisitos
Plataformas: Vea Requisitos de sistema.
Encabezado: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versiones de .NET Framework: disponible a partir de la versión 2.0