Dela via


ICorDebugManagedCallback2::MDANotification-metod

Anger ett meddelande om att kodkörningen har påträffat en hanterad felsökningsassistent (MDA) i programmet som debuggas.

Syntax

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

Parametrar

pController [i] En pekare till ett ICorDebugController-gränssnitt som exponerar processen eller programdomänen där MDA inträffade.

Ett felsökningsprogram bör inte göra några antaganden om huruvida kontrollanten är en process eller en programdomän, även om den alltid kan fråga gränssnittet för att göra en bedömning.

pThread [i] En pekare till ett ICorDebugThread-gränssnitt som exponerar den hanterade tråd där felsökningshändelsen inträffade.

Om MDA inträffade på en ohanterad tråd blir värdet pThread för null.

Du måste hämta operativsystemets (OS) tråd-ID från själva MDA-objektet.

pMDA [i] En pekare till ett ICorDebugMDA-gränssnitt som exponerar MDA-informationen.

Kommentarer

En MDA är en heuristisk varning och kräver ingen explicit felsökningsåtgärd förutom att anropa ICorDebugController::Fortsätt att återuppta körningen av programmet som debuggas.

Common Language Runtime (CLR) kan avgöra vilka MDA:er som utlöses och vilka data som finns i en viss MDA när som helst. Därför bör felsökare inte skapa några funktioner som kräver specifika MDA-mönster.

MDA:er kan placeras i kö och utlöses kort efter att MDA påträffas. Detta kan inträffa om körningen måste vänta tills den når en säker punkt för att avfyra MDA, i stället för att starta MDA när den stöter på den. Det innebär också att körningen kan utlösa ett antal MDA:er i en enda uppsättning köade återanrop (ungefär som en "bifoga"-händelseåtgärd).

Ett felsökningsprogram bör släppa referensen till en ICorDebugMDA instans omedelbart efter att ha återvänt från återanropet MDANotification , så att CLR kan återvinna det minne som förbrukas av en MDA. Om du släpper instansen kan prestandan förbättras om många MDA:er startas.

Krav

Plattformar: Se Systemkrav.

Rubrik: CorDebug.idl, CorDebug.h

Bibliotek: CorGuids.lib

.NET Framework-versioner: Tillgänglig sedan 2.0

Se även