Udostępnij za pośrednictwem


ICorDebugManagedCallback2::MDANotification — Metoda

Zawiera powiadomienie, że w aplikacji, która jest debugowana, napotkał asystenta debugowania zarządzanego (MDA).

Składnia

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

Parametry

pController [in] Wskaźnik do interfejsu ICorDebugController, który uwidacznia proces lub domenę aplikacji, w której wystąpiła mdA.

Debuger nie powinien podejmować żadnych założeń dotyczących tego, czy kontroler jest procesem, czy domeną aplikacji, chociaż zawsze może wysyłać zapytania do interfejsu w celu ustalenia.

pThread [in] Wskaźnik do interfejsu ICorDebugThread, który uwidacznia zarządzany wątek, na którym wystąpiło zdarzenie debugowania.

Jeśli usługa MDA wystąpiła w wątku niezarządzanym, wartość pThread będzie równa null.

Identyfikator wątku systemu operacyjnego (OS) należy pobrać z samego obiektu MDA.

pMDA [in] Wskaźnik do interfejsu ICorDebugMDA, który uwidacznia informacje MDA .

Uwagi

MdA jest ostrzeżeniem heurystycznym i nie wymaga żadnej jawnej akcji debugera, z wyjątkiem wywoływania elementu ICorDebugController::Kontynuuj , aby wznowić wykonywanie debugowanej aplikacji.

Środowisko uruchomieniowe języka wspólnego (CLR) może określić, które rozwiązania MDA są uruchamiane i które dane znajdują się w dowolnym momencie w danym mdA. W związku z tym debugery nie powinny tworzyć żadnych funkcji wymagających określonych wzorców MDA.

MdA mogą być kolejkowane i uruchamiane wkrótce po napotkaniu mdA. Może się tak zdarzyć, jeśli środowisko uruchomieniowe musi poczekać, aż osiągnie bezpieczny punkt w celu wypalania mdA, zamiast wyzwalać mdA, gdy napotka. Oznacza to również, że środowisko uruchomieniowe może uruchamiać wiele umów MDA w jednym zestawie wywołań zwrotnych w kolejce (podobnie jak operacja "dołączania" zdarzenia).

Debuger powinien zwolnić odwołanie do ICorDebugMDA wystąpienia natychmiast po powrocie z MDANotification wywołania zwrotnego, aby umożliwić CLR odtwarzanie pamięci używanej przez mdA. Zwolnienie wystąpienia może poprawić wydajność, jeśli wiele umów MDA jest wyzwalanych.

Wymagania

Platformy: zobacz Wymagania systemowe.

Nagłówek: CorDebug.idl, CorDebug.h

Biblioteka: CorGuids.lib

Wersje programu .NET Framework: dostępne od wersji 2.0

Zobacz też