Compartilhar via


Método de ICorDebugManagedCallback2::MDANotification

Fornece notificação de que a execução de código encontrou um Assistente de depuração gerenciada (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 expõe o processo ou domínio de aplicativo no qual o MDA ocorreu.

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

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

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

    Você deve obter a identificação de thread do sistema operacional (SO) do próprio objeto MDA.

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

Comentários

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

O common language runtime (CLR) pode determinar qual MDAs são acionados e quais dados estão em qualquer MDA determinado em qualquer ponto. Portanto, os depuradores não deverá criar qualquer funcionalidade que exigem padrões específicos de MDA.

MDAs podem ser colocados em fila e acionados logo após o MDA é encontrado. Isso pode acontecer se o runtime deve aguardar até que ele atingir o ponto seguro para acionar o MDA, em vez de disparar o MDA quando ele encontra. Isso também significa que o runtime pode disparar um número de MDAs em um único conjunto de retornos de chamada na fila (semelhante a um "anexar" operação do evento).

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

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface de ICorDebugManagedCallback2

Interface de ICorDebugManagedCallback

Conceitos

Diagnosticar erros com assistentes de depuração gerenciada