次の方法で共有


コア インターフェイス

次のインターフェイスは、Visual Studio SDK を使用してデバッガーを拡張するためのコア インターフェイスです。

考察 (Discussion)

これらのインターフェイスは、主にデバッグ エンジン (DE) を作成するために使用されます。 それらをここでカテゴリ別に整理しています。

ブレークポイント

これらのインターフェイスは、ブレークポイントの実装と追跡に関連しています。

インターフェイス 実装先 説明
IDebugBoundBreakpoint2 DE メモリの場所にバインドされたブレークポイントを表します。
IDebugBreakpointBoundEvent2 DE ブレークポイントがメモリの場所にバインドされたときに、DE によって送信されます。
IDebugBreakpointChecksumRequest2 VS ブレークポイント要求のドキュメント チェックサムを表します。
IDebugBreakpointErrorEvent2 DE ブレークポイントをメモリの場所にバインドできなかった場合に、DE によって送信されます。
IDebugBreakpointEvent2 DE ブレークポイントに到達したときに、DE によって送信されます。
IDebugBreakpointRequest2 VS ブレークポイントの要求を表します。保留中のブレークポイントの作成で使用されます。
IDebugBreakpointRequest3 VS ブレークポイントの要求を表します。保留中のブレークポイントの作成で使用されます。
IDebugBreakpointResolution2 DE ブレークポイントをバインドするために使用する情報を表します。
IDebugBreakpointUnboundEvent2 DE ブレークポイントがメモリの場所からバインド解除されたときに、DE によって送信されます。
IDebugErrorBreakpoint2 DE 無効なブレークポイント (IDebugBreakpointErrorEvent2 によって返される) を表します。
IDebugErrorBreakpointResolution2 DE 無効なブレークポイントに関する解決情報を表します。
IDebugFunctionPosition2 DE ブレークポイントが設定されている関数内の位置を表します。
IDebugPendingBreakpoint2 DE バインドされるブレークポイントを表します。バインドされたブレークポイントの作成で使用されます。
IEnumDebugBoundBreakpoints2 DE 一連のバインドされたブレークポイントに対する列挙を表します。
IEnumDebugErrorBreakpoints2 DE メモリの場所にバインドできなかった一連のブレークポイントに対する列挙を表します。

コンテキスト

これらのインターフェイスは、デバッグ中のプログラム内のさまざまな種類のコンテキストを表します。

インターフェイス 実装先 説明
IDebugCodeContext2 DE コード命令の開始位置を表します。
IDebugCodeContext3 DE IDebugCodeContext2 インターフェイスを拡張し、モジュールおよびプロセス インターフェイスを取得できるようにします。
IDebugDocumentContext2 VS、DE ドキュメント内の位置を表します。
IDebugExpressionContext2 DE 式を評価するコンテキストを表します。
IDebugMemoryContext2 DE バイトのコレクションのメモリ内の開始位置を表します。
IDebugStackFrame2 DE ブレークポイントまたは例外のスタック フレーム コンテキストを表します。
IDebugStackFrame3 DE ブレークポイントまたは例外のスタック フレーム コンテキストを表します。
IEnumDebugCodeContexts2 DE 一連のコード コンテキストに対する列挙を表します。

コア サーバー

これらのインターフェイスは、プログラムがデバッグされているコンピューターを表します。 これらは Visual Studio によって実装されますが、デバッグ エンジンによって呼び出すことができます。

インターフェイス 実装先 説明
IDebugCoreServer2 VS コンピューターに関する情報だけでなく、ポートとポート サプライヤーへのアクセスを提供します。
IDebugCoreServer3 VS リモート デバッグをサポートする IDebugCoreServer2 を表します。

デバッグ エンジン

これらのインターフェイスは、デバッグ エンジンとそれらに関連付けられたイベントを表します。

インターフェイス 実装先 説明
IDebugEngine2 DE カスタム デバッグ エンジンを表します。
IDebugEngine3 DE シンボル、JustMyCode、および例外の読み込みをサポートするカスタム デバッグ エンジンを表します。
IDebugEngineCreateEvent2 DE DE の新しい各インスタンスによって送信され、デバッグ タスクを処理する準備ができていることを示します。
IDebugEngineLaunch2 DE プログラムの起動をサポートするカスタム デバッグ エンジンを表します。
IDebugProgramEngines2 DE、PS 複数のデバッグ エンジンを処理するプログラム ノードを表します。
IDebugQueryEngine2 DE SDM がスレッド、プログラム、またはスタック フレームからデバッグ エンジンへのインターフェイスを取得する方法を提供します。

ドキュメント​

これらのインターフェイスは、ドキュメント (ソース ファイル) とそれらに関連付けられている要素を表します。

インターフェイス 実装先 説明
IDebugActivateDocumentEvent2 DE ドキュメントを開くように要求するために、DE によって送信されます。
IDebugDisassemblyStream2 DE ドキュメントからの逆アセンブル命令のストリームを表します。
IDebugDocument2 VS、DE 名前とクラス ID (CLSID) を指定して、DE によって提供されるドキュメントを表します。
IDebugDocumentChecksum2 DE、EE デバッグ ドキュメントのチェックサムを表し、コンポーネント間でチェックサムを渡せるようにします。
IDebugDocumentContext2 VS、DE ドキュメント コンテキスト (特定のステートメントおよびコード コンテキストに対応するドキュメント内の位置) を表します。
IDebugDocumentPosition2 VS、DE ドキュメント内の一般の位置を表します。
IDebugDocumentPositionOffset2 VS 文字オフセットとしてソース ファイル内の位置を表します。
IDebugDocumentText2 VS、DE DE によって提供されたテキスト ドキュメント (IDebugDocument2 から派生した) を表し、実際のテキストを提供します。
IDebugDocumentTextEvents2 DE メモリ内のソース ファイルに対する変更を指定するために、DE によって送信されます。

[イベント]

これらのインターフェイスは、DE とセッション デバッグ マネージャー (SDM) の間で送信されるすべてのイベントを表します。

インターフェイス 実装先 説明
IDebugActivateDocumentEvent2 DE ドキュメントを開くように要求するために、DE によって送信されます。
IDebugBeforeSymbolSearchEvent2 DE デバッグ エンジン (DE) によって、このインターフェイスがセッション デバッグ マネージャー (SDM) に送信され、シンボルの読み込み時にステータス バー メッセージが設定されます。
IDebugBreakEvent2 DE プログラム内の break が完了したときに、DE によって送信されます。
IDebugBreakpointBoundEvent2 DE ブレークポイントがバインドされるときに、DE によって送信されます。
IDebugBreakpointErrorEvent2 DE ブレークポイントのバインドに失敗したときに、DE によって送信されます。
IDebugBreakpointEvent2 DE ブレークポイントに到達したときに、DE によって送信されます。
IDebugBreakpointUnboundEvent2 DE ブレークポイントがバインド解除されるときに、DE によって送信されます。
IDebugCanStopEvent2 DE 特定の場所で停止する必要があるかどうかを判断するために、DE によって送信されます。
IDebugDocumentTextEvents2 DE メモリ内のソース ファイルに対する変更を指定するために、DE によって送信されます。
IDebugEngineCreateEvent2 DE DE の新しい各インスタンスによって送信され、デバッグ タスクを処理する準備ができていることを示します。
IDebugEntryPointEvent2 DE デバッグ中のプログラムが最初の命令を実行する準備ができていることを示すために、DE によって送信されます。
IDebugErrorEvent2 DE 人が判読できるエラー メッセージを提供するために、エラーを返す可能性がある、他のイベント インターフェイスによって使用されるインターフェイス。
IDebugEvent2 DE、PS 他のすべてのイベント インターフェイスの派生元となる基本インターフェイス。
IDebugEventCallback2 VS イベント (特定のイベント インターフェイスを実装するオブジェクトとして表される) の送信先の SDM によって実装されるインターフェイスを表します。
IDebugExceptionEvent2 DE デバッグ中のプログラムで例外が発生したときに、DE によって送信されます。
IDebugExpressionEvaluationCompleteEvent2 DE 非同期式の評価が完了したときに、DE によって送信されます。
IDebugFindSymbolEvent2 廃止。 使用しないでください。
IDebugInterceptExceptionCompleteEvent2 DE インターセプトされた例外の処理が完了したときに、DE によって送信されます。
IDebugLoadCompleteEvent2 DE プログラムの読み込みが完了したときに、DE によって送信されます。
IDebugMessageEvent2 DE IDE にユーザーに対して情報メッセージを表示させるために、DE によって送信されます。
IDebugModuleLoadEvent2 DE モジュールが読み込まれたとき、またはアンロードされたときに、DE によって送信されます。
IDebugNoSymbolsEvent2 DE Visual Studio デバッガー UI に信号を送り、起動された実行可能ファイルのシンボルが見つからなかったことをユーザーに警告します。
IDebugOutputStringEvent2 DE IDE に任意の文字列を表示させるために、DE によって送信されます。
IDebugPortEvents2 VS、DE ポート イベントを任意のリスナーに伝達するために、ポートによって送信されます。
IDebugProcessCreateEvent2 DE、PS プロセスが作成されたときに、DE またはポートによって送信されます。
IDebugProcessDestroyEvent2 DE、PS プロセスが破棄されたときに、DE またはポートによって送信されます。
IDebugProgramCreateEvent2 DE、PS プログラムが作成されたときに、DE またはポートによって送信されます。
IDebugProgramDestroyEvent2 DE、PS プログラムが破棄されたときに、DE またはポートによって送信されます。
IDebugProgramDestroyEventFlags2 DE デバッグ セッションを終了するときに、デバッグ エンジンによって、Visual Studio UI の既定の動作をオーバーライドできるようにします。
IDebugProgramNameChangedEvent2 DE プログラムの名前が変更されたときに、デバッグ エンジン (DE) からセッション デバッグ マネージャー (SDM) に送信されます。
IDebugPropertyCreateEvent2 DE 新しいプロパティ (IDebugProperty2 インターフェイスによって表される) が作成されたときに、DE によって送信されます。
IDebugPropertyDestroyEvent2 DE プロパティが破棄されたときに、DE によって送信されます。
IDebugReturnValueEvent2 DE 戻り値を正しく表示できるように、関数のステップ アウトまたはステップ オーバー時に DE によって送信されます。
IDebugSettingsCallback2 VS デバッグ エンジンが、リモートでメトリック設定を読み取れるようにします。
IDebugStepCompleteEvent2 DE 命令のステップ イン、ステップ オーバー、またはステップ アウトが完了したときに、DE によって送信されます。
IDebugSymbolSearchEvent2 DE モジュールのシンボルの読み込みの成功または失敗を示すために、DE によって送信されます。
IDebugThreadCreateEvent2 DE スレッドが作成されたときに、DE によって送信されます。
IDebugThreadDestroyEvent2 DE スレッドが破棄されたときに、DE によって送信されます。
IDebugThreadNameChangedEvent2 DE スレッドの名前が変更されたときに、DE によって送信されます。

これらのインターフェイスは、特定のコンテキストで評価される式を表します。

インターフェイス 実装先 説明
IDebugExpression2 DE 評価される式を表します。 IDebugExpressionContext2 インターフェイスから取得されます。
IDebugExpressionContext2 DE 式が評価されるコンテキストを表します。 IDebugStackFrame2 インターフェイスから取得されます。
IDebugExpressionEvaluationCompleteEvent2 DE 非同期式の評価が完了したときに、DE によって送信されます。

[メモリ]

これらのインターフェイスは、メモリ内のバイトのシーケンスを表します。

インターフェイス 実装先 説明
IDebugMemoryBytes2 DE 読み取りまたは書き込みが可能なメモリ内のバイトのシーケンスを表します。
IDebugMemoryContext2 DE バイトのシーケンスのメモリ内の場所を表します。

モジュール

これらのインターフェイスは、実行可能ファイルまたは .DLL ファイルに対応するモジュールを表します。

インターフェイス 実装先 説明
IDebugModule2 DE 1 つの実行可能ファイルまたは DLL を表します。
IDebugModule3 DE シンボルをサポートする IDebugModule2 を表します。
IDebugModuleLoadEvent2 DE モジュールが読み込まれたとき、またはアンロードされたときに、DE によって送信されます。
IDebugSourceServerModule DE PDB ファイルに格納されているソース サーバー情報を表します。
IEnumDebugModules2 DE IDebugProgram2 によって認識される一連のモジュールに対する列挙を表します。

Port

これらのインターフェイスは、ポートとポート サプライヤーを表します。

インターフェイス 実装先 説明
IDebugDefaultPort2 VS、PS ローカル コンピューターの既定のポートを表します。
IDebugFirewallConfigurationCallback2 VS DCOM を使用して、ファイアウォールがリモート デバッグをブロックしないようにするために、デバッグ エンジンで Visual Studio UI に要求できるようにします。
IDebugPort2 VS、PS ポートを表します。
IDebugPortEvents2 PS ポート イベントを任意のリスナーに伝達するために、ポートによって送信されます。
IDebugPortEx2 PS プロセスを起動および終了できるポートを表します。
IDebugPortNotify2 PS プログラムをポートに登録および登録解除するために使用されます。ポートで現在デバッグ中のプログラムを追跡できるようにします。
IDebugPortPicker PS ポートを選択するためのカスタマイズされた UI を表します。
IDebugPortRequest2 VS 新しいポートが作成または配置されるポートの要求を表します。
IDebugPortSupplier2 PS ポートのサプライヤーを表します。
IDebugPortSupplier3 PS 作成したポートに関する情報を永続化 (ディスクに保存) できるポートのサプライヤーを表します。
IDebugPortSupplierDescription2 PS [プロセスにアタッチ] ダイアログ ボックスの [トランスポート情報] セクション内のテキストを、Visual Studio UI で表示できるようにします。
IDebugWindowsComputerPort2 VS 対象のコンピューターに関する情報のクエリを実行できるようにします。
IEnumDebugPorts2 VS、PS 一連のポートに対する列挙を表します。
IEnumDebugPortSuppliers2 VS 一連のポート サプライヤーに対する列挙を表します。

処理

これらのインターフェイスは、プロセス (1 つまたは複数のプログラムを含む 1 つの実行可能ファイル) を表します。

インターフェイス 実装先 説明
IDebugProcess2 PS、DE コンピューターで実行されているプロセスを表します。
IDebugProcess3 PS、DE デバッグをアクティブにサポートするプロセスを表します (IDebugProgram2 インターフェイスの Step、Continue、および Execute メソッドを置き換えるために使用されます)。
IDebugProcessCreateEvent2 DE、PS プロセスが作成されたときに、DE またはポートによって送信されます。
IDebugProcessDestroyEvent2 DE、PS プロセスが破棄されたときに、DE またはポートによって送信されます。
IDebugProcessEx2 PS アタッチされているセッションを追跡する必要があるプロセスを表します。
IEnumDebugProcesses2 PS ポート上の一連のプロセスの列挙を表します。

プログラム

これらのインターフェイスは、プログラム (必ずしも物理的な実行可能ファイルやモジュールに対応していない実行の論理ユニット) を表します。

インターフェイス 実装先 説明
IDebugEngineProgram2 DE 同時にデバッグされている他のプログラムと連携して動作する必要がある IDebugProgram2 を表します。
IDebugProgram2 DE、PS 実行の論理ユニットを表します。
IDebugProgramCreateEvent2 DE、PS プログラムが作成されたときに、DE またはポートによって送信されます。
IDebugProgramDestroyEvent2 DE、PS プログラムが破棄されたときに、DE またはポートによって送信されます。
IDebugProgramEngines2 DE、PS 複数のデバッグ エンジンによって処理できる IDebugProgramNode2 を表します。
IDebugProgramEx2 PS アタッチ先のセッションを追跡できる必要がある IDebugProgram2 を表します。
IDebugProgramHost2 DE、PS 実行されているプロセスに関する情報を返すことができる IDebugProgram2 を表します。
IDebugProgramNode2 DE、PS デバッグできるプログラムを表します。
IDebugProgramNodeAttach2 DE、PS 関連付けられているプログラムへのアタッチの試みをプログラム ノードに通知できるようにします。
IDebugProgramProvider2 DE SDM が、その DE によって制御されるプログラムに関する DE をクエリする方法を提供します。
IDebugProgramPublisher2 VS プログラムを SDM に登録して、それらがデバッグ中であることを示すために、DE によって使用されます。
IDebugProviderProgramNode2 DE、PS スレッドまたはプロセスの境界を越えてインターフェイスをマーシャリングできる IDebugProgramNode2 を表します。
IEnumDebugPrograms2 DE、PS 一連のプログラムの列挙を表します。

プロパティ

これらのインターフェイスは、特定のコンテキストに関連付けられた値 (通常は式の評価の結果) を表します。

インターフェイス 実装先 説明
IDebugCustomViewer EE カスタムの方法で値を表示できる IDebugProperty2 を表します。
IDebugProperty2 DE スタック フレーム、ドキュメント、または式の評価の結果の値を表します。
IDebugProperty3 DE 任意の長い文字列をサポートする IDebugProperty2 を表します。
IDebugPropertyCreateEvent2 DE (IDebugProperty2 インターフェイスによって表される) 新しいプロパティが作成されたときに、DE によって送信されます。
IDebugPropertyDestroyEvent2 DE プロパティが破棄されたときに、DE によって送信されます。
IDebugReference2 DE 特定のスタック フレームの外部に存在する可能性があるプロパティへの参照を表します。
IEnumDebugPropertyInfo2 DE 変数、レジスタ、パラメーター、および式を記述する一連の DEBUG_PROPERTY_INFO 構造体に対する列挙を表します。
IEnumDebugReferenceInfo2 DE 一連の DEBUG_REFERENCE_INFO 構造体に対する列挙を表します。

スタック フレーム

これらのインターフェイスは、スタック フレーム (ブレークポイントまたは例外が発生したコンテキスト) を表します。

インターフェイス 実装先 説明
IDebugStackFrame2 DE ブレークポイントまたは例外が発生したコンテキストを表します。
IDebugStackFrame3 DE インターセプトされた例外を処理できる IDebugStackFrame2 を表します。
IEnumCodePaths2 DE 特定のスタック フレームに到着するために使用される関数呼び出しシーケンスを指定する一連の CODE_PATH 構造体に対する列挙を表します。
IEnumDebugFrameInfo2 DE スタック フレームを記述する一連の FRAMEINFO 構造体に対する列挙を表します。

スレッド

これらのインターフェイスは、スレッドとそれらに関連付けられたイベントを表します。

インターフェイス 実装先 説明
IDebugThread2 DE 実行のスレッドを表します。
IDebugThreadCreateEvent2 DE スレッドが作成されたときに、DE によって送信されます。
IDebugThreadDestroyEvent2 DE スレッドが破棄されたときに、DE によって送信されます。
IDebugThreadNameChangedEvent2 DE スレッドの名前が変更されたときに、DE によって送信されます。
IEnumDebugThreads2 DE 一連のスレッドに対する列挙体を表します。

型ビジュアライザー

これらのインターフェイスは、型ビジュアライザーのサポートを提供します。 これらのインターフェイスは、一般に式エバリュエーターによって実装されます。

インターフェイス 実装先 説明
IEEDataStorage EE 型ビジュアライザーに提示されるバイトの配列を表します。
IPropertyProxyEESide EE 型ビジュアライザーに渡されるデータへのアクセスを取得するためのメソッドを提供します。
IPropertyProxyProvider EE IPropertyProxyEESide 実装へのアクセスを提供するプロパティを表します。

関連項目