Condividi tramite


Metodo ICorDebugManagedCallback2::MDANotification

Fornisce una notifica che l'esecuzione del codice ha rilevato un assistente al debug gestito nell'applicazione di cui è in corso il debug.

Sintassi

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

Parametri

pController [in] Puntatore a un'interfaccia ICorDebugController che espone il processo o il dominio dell'applicazione in cui si è verificato l'assistente al debug gestito.

Un debugger non deve fare ipotesi sul fatto che il controller sia un processo o un dominio applicazione, anche se può sempre eseguire una query sull'interfaccia per determinare.

pThread [in] Puntatore a un'interfaccia ICorDebugThread che espone il thread gestito in cui si è verificato l'evento di debug.

Se l'assistente al debug gestito si è verificato in un thread non gestito, il valore di pThread sarà Null.

È necessario ottenere l'ID del thread del sistema operativo dall'oggetto MDA stesso.

pMDA [in] Puntatore a un'interfaccia ICorDebugMDA che espone le informazioni MDA.

Osservazioni:

Un assistente al debug gestito è un avviso euristico e non richiede alcuna azione del debugger esplicita, ad eccezione della chiamata di ICorDebugController::Continue per riprendere l'esecuzione dell'applicazione di cui è in corso il debug.

Common Language Runtime (CLR) può determinare quali account del servizio gestito vengono attivati e quali dati si trovano in qualsiasi momento. Di conseguenza, i debugger non devono compilare alcuna funzionalità che richiede modelli MDA specifici.

Gli mdA possono essere accodati e attivati poco dopo che è stato rilevato l'assistente al debug gestito. Questo problema può verificarsi se il runtime deve attendere fino a quando non raggiunge un punto sicuro per l'attivazione dell'assistente al debug gestito, invece di generare l'assistente al debug gestito quando viene rilevato. Significa anche che il runtime può generare un numero di mdA in un singolo set di callback in coda (simile a un'operazione di collegamento).

Un debugger deve rilasciare il riferimento a un'istanza ICorDebugMDA immediatamente dopo la MDANotification restituzione dal callback, per consentire a CLR di riciclare la memoria utilizzata da un assistente al debug gestito. Il rilascio dell'istanza può migliorare le prestazioni se vengono attivati molti mdA.

Requisiti

Piattaforme: Vedere Sistemi operativi supportati da .NET.

Intestazione: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versioni di .NET: Disponibile a partire da .NET Framework 2.0

Vedere anche