Поделиться через


Метод ICorDebugManagedCallback2::MDANotification

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

Синтаксис

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

Параметры

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

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

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

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

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

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

Замечания

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

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

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

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

Требования

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

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

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

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

См. также