次の方法で共有


MDAInfo 構造体

マネージ デバッグ アシスタント (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 のバージョン : 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

参照

概念

マネージ デバッグ アシスタントによるエラーの診断

その他の技術情報

ホスト構造体