Partilhar via


Método ICorDebugManagedCallback2::MDANotification

Fornece notificação de que a execução de código encontrou um Assistente de depuração gerenciado (MDA) no aplicativo que está sendo depurado.

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

Parâmetros

  • pController
    [in] Um ponteiro para um ICorDebugController interface que expõe o processo ou domínio do aplicativo no qual ocorreu o MDA.

    Um depurador não deve fazer suposições sobre se o controlador é um processo ou um domínio do aplicativo, embora ele pode sempre consultar a interface para tomar uma decisão.

  • pThread
    [in] Um ponteiro para um ICorDebugThread interface que expõe o thread gerenciado no qual ocorreu o evento de depurar.

    Se o MDA ocorreu em um thread não gerenciado, o valor de pThread será nulo.

    Você deve obter o identificador do segmento de sistema operacional (SO) do próprio objeto MDA.

  • pMDA
    [in] Um ponteiro para um ICorDebugMDA interface que expõe as informações de MDA.

Comentários

Um MDA é um aviso heurística e não requer nenhuma ação explícita do depurador, exceto para chamar ICorDebugController::Continue para continuar a execução do aplicativo que está sendo depurado.

O common linguagem tempo de execução (CLR) pode determinar qual MDAs são acionadas e os dados que estão em qualquer MDA determinado em qualquer ponto. Portanto, os depuradores não devem criar qualquer funcionalidade que exigem padrões específicos de MDA.

MDAs podem ser colocados em na fila e acionadas logo após o MDA é encontrado. Isso pode ocorrer se o tempo de execução precisa esperar até que ele atingir o ponto seguro para acionar o MDA, em vez de acionamento o MDA quando ele encontra. Isso também significa que o tempo de execução pode disparar um número de MDAs em um único conjunto de retornos de chamada na fila (semelhantes a uma operação de evento "Anexar").

Um depurador deve liberar a referência a um ICorDebugMDA instância imediatamente após retornar das MDANotification retorno de chamada, para permitir que o CLR reciclar a memória consumida por um MDA. Liberando a instância pode aumentar o desempenho se MDAs muitos estão disparando.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: CorDebug.idl

Biblioteca: CorGuids.lib

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Conceitos

Diagnosticar erros com assistentes de Depurando gerenciados

Referência

Interface ICorDebugManagedCallback2

Interface ICorDebugManagedCallback