次の方法で共有


デバッグ API について

更新 : 2007 年 11 月

共通言語ランタイム (CLR: Common Language Runtime) のデバッグ API を使用することで、ツールの販売元は、CLR 環境で実行するアプリケーションをデバッグするためのデバッガを作成できます。CLR がサポートするすべての種類のコードをデバッグできます。

CLR デバッグ API は、主にアンマネージ コードで実装されています。したがって、デバッグ API は、COM インターフェイスのセットとして提供されます。API は、CLR によって実装される COM オブジェクトとインターフェイスのコレクション、およびデバッガが実装する必要のある COM コールバック インターフェイスのコレクションで構成されます。これらのデバッグ インターフェイスはすべて COM に基づくので、デバッガ プログラムは、分散 COM (DCOM: Distributed COM) を使用することで、リモート デバッグが可能なように簡単に拡張できます。

API のカテゴリ

デバッガ API には、次の 3 つのインターフェイス グループが含まれます。通常、これらはすべて CLR デバッガによって使用され、アンマネージ コードとして実装されます。

  • CLR アプリケーションのデバッグをサポートするインターフェイス。

  • シンボリック デバッグ情報にアクセスするためのインターフェイス。通常は、プログラム データベース (PDB: Program Database) ファイルに格納されます。

  • コンピュータ上のプロセスおよびアプリケーション ドメインのクエリをサポートするインターフェイス。

デバッグ API は、次の 2 つのインターフェイス セットに依存します。

  • クラスやメソッド型の情報など、静的なプログラム情報の検査を処理するためのメタデータ API。

  • マネージ コード デバッガのソース レベル デバッグをサポートするためのシンボル ストア API。

また、デバッグ インターフェイスは、次の表に示すような機能的なカテゴリにまとめることもできます。

API のカテゴリ

説明

登録

CLR に登録するため、および特定のイベントが発生したときの通知を要求するために、デバッガが呼び出すインターフェイス。

通知

さまざまなイベントをデバッガに通知するため、および要求された情報を返すために、CLR が使用するコールバック インターフェイス。これらのインターフェイスは、デバッガが実装する必要があります。

ブレークポイント

ブレークポイントに関する情報を取得するために、デバッガが呼び出すインターフェイス。

実行

デバッグ対象の実行を制御するため、および呼び出し履歴にアクセスするために、デバッガが呼び出すインターフェイス。

情報

デバッグ対象に関する情報を取得するために、デバッガが呼び出すインターフェイス。

列挙

オブジェクトを列挙するために、デバッガが呼び出すインターフェイス。

変更

デバッグされているコードを変更するために、デバッガが呼び出すインターフェイス。

サポートされる環境

CLR のデバッグ機能は、CLR がサポートするすべてのプロセッサとオペレーティング システムで利用できますが、次のような例外があります。

  • 64 ビット オペレーティング システムでは、エディット コンティニュおよび混合モード デバッグはサポートされません。SetIP メソッド (ICorDebugILFrame::SetIP および ICorDebugNativeFrame::SetIP) では、64 ビット オペレーティング システムに固有の制限事項があります。他の機能はすべてのプロセッサに共通で、プロセッサ固有のデータ表現 (ポインタ サイズ、レジスタ コンテキストなど) に対応します。

  • Win9x ベースのオペレーティング システムでは、エディット コンティニュおよび混合モード デバッグはサポートされません。特定の例外がいくつかありますが (これらについては、個々の関数のマニュアルで説明されています)、他の機能はすべてのオペレーティング システムで共通です。

参照

その他の技術情報

.NET Framework でのデバッグ

CLR デバッグの概要

デバッグ (アンマネージ API リファレンス)