更新 : 2007 年 11 月
マネージ デバッグ アシスタント (MDA: Managed Debugging Assistant) が作成された原因である Event_MDAFired イベントの詳細情報を提供します。
typedef struct _MDAInfo {
LPCWSTR lpMDACaption;
LPCWSTR lpMDAMessage
} MDAInfo;
メンバ
メンバ |
説明 |
---|---|
lpMDACaption |
現在の MDA のタイトル。このタイトルは、Event_MDAFired イベントを発生させたエラーの種類を示します。 |
lpMDAMessage |
現在の MDA によって提供される出力メッセージ。 |
解説
マネージ デバッグ アシスタント (MDA: Managed Debugging Assistant) は、共通言語ランタイム (CLR: Common Language Runtime) と連携して、ランタイム実行エンジンの無効な状態を識別したり、エンジンの状態に関する追加の情報をダンプしたりするなどのタスクを実行する、デバッグ支援ツールです。MDA は、これ以外の方法ではトラップできないイベントに関する XML メッセージを生成します。このツールは、マネージ コードとアンマネージ コード間の遷移をデバッグする場合に特に役立ちます。
ランタイムは、MDA が作成される原因となるイベントが発生すると、次の手順を実行します。
ホストが IActionOnCLREvent インスタンスをまだ登録していない場合、ランタイムは ICLROnEventManager::RegisterActionOnEvent を呼び出して Event_MDAFired イベントの通知を受け取るようにし、既定のホストされない動作で処理を続けます。
ホストがこのイベントのハンドラを登録済みの場合は、ランタイムはこのプロセスにデバッガがアタッチされているかどうかを確認します。アタッチされている場合はデバッガに割り込みます。デバッガが続けて処理を行う場合、デバッガはホストを呼び出します。デバッガがアタッチされていない場合、ランタイムは IActionOnCLREvent::OnEvent を呼び出し、MDAInfo インスタンスへのポインタを data パラメータとして渡します。
ホストは MDA をアクティブにするかどうか、および MDA がアクティブにしたときに通知を受け取るかどうかを選択できます。これによりホストは既定の動作をオーバーライドし、イベントを発生させたマネージ スレッドを中止して、プロセス状態が破損されないようにできます。MDA の使用方法の詳細については、「マネージ デバッグ アシスタントによるエラーの診断」を参照してください。
必要条件
プラットフォーム : 「.NET Framework システム要件」を参照
ヘッダー : MSCorEE.idl
ライブラリ : MSCorEE.dll にリソースとして格納されていること
.NET Framework のバージョン : 3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0