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