共用方式為


ICorDebugManagedCallback2::MDANotification 方法

提供程式碼執行在正在偵錯的應用程式中遇到受控偵錯小幫手 (MDA) 的通知。

語法

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

參數

pController [在]ICorDebugController 介面的指標,可公開發生 MDA 的進程或應用程式網域。

偵錯工具不應該對控制器是進程還是應用程式網域做出任何假設,不過它一律可以查詢介面以做出判斷。

pThread [在]ICorDebugThread 介面的指標,可公開發生偵錯事件的受控執行緒。

如果 MDA 發生在未受控執行緒上,則 的 pThread 值會為 Null。

您必須從 MDA 物件本身取得作業系統 (OS) 執行緒識別碼。

pMDA [在]公開 MDA 資訊之 ICorDebugMDA 介面的指標。

備註

MDA 是啟發性警告,除了呼叫 ICorDebugController::Continue 以繼續執行正在偵錯之應用程式之外,不需要任何明確的偵錯工具動作。

共用語言執行階段 (CLR) 可以判斷觸發哪些 MDA,以及任何指定 MDA 中的任何數據。 因此,偵錯工具不應該建置任何需要特定 MDA 模式的功能。

MDA 可能會在遇到 MDA 後不久排入佇列並引發。 如果運行時間需要等到到達觸發 MDA 的安全點,而不是在遇到 MDA 時觸發 MDA,則可能會發生這種情況。 這也表示運行時間可能會在一組佇列回呼中引發多個 MDA(類似於「附加」事件作業)。

偵錯工具應該在從回呼傳MDANotification回之後立即釋放實例的ICorDebugMDA參考,以允許 CLR 回收 MDA 所耗用的記憶體。 如果許多 MDA 正在觸發,釋放執行個體可能會改善效能。

需求

平台: 請參閱 .NET 支援的作業系統

標題: CorDebug.idl、CorDebug.h

圖書館: CorGuids.lib

.NET 版本: 自 .NET Framework 2.0 起提供

另請參閱