Compartilhar via


Método ICorDebugManagedCallback2::MDANotification

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

Sintaxe

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

Parâmetros

pController [in] Um ponteiro para uma interface ICorDebugController que expõe o processo ou o domínio do 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 sempre possa consultar a interface para fazer uma determinação.

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

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

Você deve obter a ID de thread do sistema operacional (SO) do próprio objeto MDA.

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

Observações

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

O CLR (Common Language Runtime) pode determinar quais MDAs são acionados e quais dados estão em qualquer MDA determinado a qualquer momento. Portanto, os depuradores não devem criar nenhuma funcionalidade que exija padrões de MDA específicos.

Os MDAs podem ser enfileirados e acionados logo após o MDA ser encontrado. Isso pode acontecer se o runtime precisar esperar até chegar a um ponto seguro para disparar o MDA, em vez de disparar o MDA quando ele o encontrar. 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 uma operação de evento de "anexação").

Um depurador deve liberar a referência a uma ICorDebugMDA instância imediatamente após retornar do MDANotification retorno de chamada, para permitir que o CLR recicle a memória consumida por um MDA. Liberar a instância poderá melhorar o desempenho se muitos MDAs estiverem sendo disparados.

Requirements

Plataformas: Consulte sistemas operacionais com suporte do .NET.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versões do .NET: Disponível desde o .NET Framework 2.0

Consulte também