Метод ICorDebugManagedCallback2::MDANotification

Предоставляет уведомление о том, что при выполнении кода в отлаживаемом приложении обнаружен управляемый помощник по отладке (MDA).

Синтаксис

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

Параметры

pController
[in] Указатель на интерфейс ICorDebugController, который предоставляет доступ к процессу или домену приложения, в котором произошло MDA.

Отладчик не должен делать никаких предположений о том, является ли контроллер процессом или доменом приложения, хотя он всегда может запросить интерфейс для определения.

pThread
[in] Указатель на интерфейс ICorDebugThread, который предоставляет управляемый поток, в котором произошло событие отладки.

Если MDA произошло в неуправляемом потоке, значение будет иметь значение pThread NULL.

Необходимо получить идентификатор потока операционной системы (ОС) из самого объекта MDA.

pMDA
[in] Указатель на интерфейс ICorDebugMDA , предоставляющий сведения о MDA.

Комментарии

MDA является эвристическим предупреждением и не требует явного действия отладчика, за исключением вызова ICorDebugController::Continue для возобновления выполнения отлаживаемого приложения.

Среда CLR может определить, какие mda активируются и какие данные находятся в любом заданном MDA в любой точке. Поэтому отладчики не должны создавать какие-либо функции, требующие определенных шаблонов MDA.

Mda могут быть поставлены в очередь и запущены вскоре после обнаружения MDA. Это может произойти, если среде выполнения необходимо подождать, пока она не достигнет безопасной точки для запуска MDA, а не запуска MDA при ее обнаружении. Это также означает, что среда выполнения может запускать несколько mda в одном наборе обратных вызовов в очереди (аналогично операции "присоединение" события).

Отладчик должен освободить ссылку ICorDebugMDA на экземпляр сразу после возврата из обратного MDANotification вызова, чтобы позволить среде CLR перезапускать память, потребляемую MDA. Освобождение экземпляра может повысить производительность, если срабатывает много mda.

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorDebug.idl, CorDebug.h

Библиотека: CorGuids.lib

версии платформа .NET Framework: доступно с версии 2.0

См. также раздел