デバッガーのコンポーネント
Visual Studio デバッガーは VSPackage として実装され、デバッグ セッション全体を管理します。 デバッグ セッションは、次の要素で構成されています。
デバッグ パッケージ: Visual Studio デバッガーでは、デバッグする内容に関係なく、同じユーザー インターフェイスが提供されます。
セッション デバッグ マネージャー (SDM): さまざまなデバッグ エンジンを管理するための、一貫性のあるプログラム インターフェイスが Visual Studio デバッガーに提供されます。 これは、Visual Studio によって実装されます。
プロセス デバッグ マネージャー (PDM): Visual Studio の実行中の全インスタンスについて、デバッグ可能な、またはデバッグ中のすべてのプログラムの一覧が管理されます。 これは、Visual Studio によって実装されます。
デバッグ エンジン (DE): デバッグ中のプログラムが監視され、実行中のプログラムの状態が SDM と PDM に通知されます。また、式エバリュエーターおよびシンボル プロバイダーと対話して、プログラムのメモリと変数の状態がリアルタイムに分析されます。 これは、Visual Studio (サポートされている言語) と独自の実行時間をサポートしたいサードパーティ ベンダーよって実装されます。
式エバリュエーター (EE): 特定の時点でプログラムが停止した際に、ユーザーが指定した変数と式が動的に評価されます。 これは、Visual Studio (サポートされている言語) と独自の言語をサポートしたいサードパーティ ベンダーよって実装されます。
シンボル プロバイダー (SP): シンボル ハンドラーとも呼ばれます。プログラムのデバッグ シンボルをプログラムの実行中のインスタンスにマップして、意味のある情報が提供されるようにします (ソースコードレベルのデバッグや式の評価など)。 これは、Visual Studio (共通言語ランタイム [CLR] シンボルとプログラム データベース [PDB] のシンボル ファイル形式)、および独自の専用メソッドを使用してデバッグ情報を格納するサードパーティ ベンダーによって実装されます。
次の図は、Visual Studio デバッガーのこれらの要素間の関係を示しています。
このセクションの内容
「デバッグ パッケージ」では、Visual Studio シェルで実行され、すべての UI を処理するデバッグ パッケージについて説明します。
「プロセス デバッグ マネージャー 」では、デバッグ可能なプロセスのマネージャーである PDM の機能の概要について説明します。
「セッション デバッグ マネージャー」では、IDE にデバッグ セッションの統合ビューを提供する SDM が定義されています。 SDM では、DE が管理されます。
「デバッグ エンジン」では、DE によって提供されるデバッグ サービスについて説明します。
「操作モード」では、IDE が動作する 3 つのモード (デザイン モード、実行モード、中断モード) の概要について説明します。 また、移行メカニズムについても説明します。
「式エバリュエーター」では、実行時の EE の目的について説明します。
「シンボル プロバイダー」では、実装時にシンボル プロバイダーが変数と式をどのように評価するかについて説明します。
「型ビジュアライザーとカスタム ビューアー」では、型ビジュアライザーとカスタム ビューアーの概要、およびこれら両方をサポートする上での式エバリュエーターの役割について説明します。
関連セクション
「デバッガーの概念」では、主要なデバッグ アーキテクチャの概念について説明します。
「デバッガー コンテキスト」では、コード、ドキュメント、式の評価コンテキスト内で DE がどのように同時操作されるかについて説明します。 場所、位置、それに関連する評価の 3 つのコンテキストそれぞれについて説明します。
「タスクをデバッグする」には、プログラムの起動や式の評価といった、さまざまなデバッグ タスクへのリンクが含まれています。