共通言語ランタイム式のエバリュエーターを記述する

重要

Visual Studio 2015 では、この方法での式エバリュエーターの実装は非推奨です。 CLR 式エバリュエーターの実装については、CLR 式エバリュエーターに関する記事とマネージド式エバリュエーターのサンプルに関する記事をご覧ください。

式エバリュエーター (EE) はデバッグ エンジン (DE) の一部であり、デバッグ対象のコードを生成したプログラミング言語の構文とセマンティクスを処理します。 式は、プログラミング言語のコンテキスト内で評価される必要があります。 たとえば、一部の言語では、"A + B" という式は "A と B の合計" を意味します。他の言語では、同じ式が "A または B" を意味する場合があります。そのため、Visual Studio IDE でデバッグするオブジェクト コードを生成するプログラミング言語ごとに、別個の EE を記述する必要があります。

Visual Studio デバッグ パッケージの一部の側面では、プログラミング言語のコンテキストでコードを解釈する必要があります。 たとえば、ブレークポイントで実行が停止した場合、ユーザーが [ウォッチ] ウィンドウに入力したすべての式が評価され、表示される必要があります。 ユーザーは、[ウォッチ] ウィンドウまたは [イミディエイト] ウィンドウに式を入力することによって、ローカル変数の値を変更することができます。

このセクションの内容

共通言語ランタイムおよび式の評価」では、独自のプログラミング言語を Visual Studio IDE に統合する場合、独自の言語のコンテキスト内で式を評価できる EE を記述することで、デバッグ エンジンを記述せずに Microsoft Intermediate Language (MSIL) にコンパイルできることについて説明します。

式エバリュエーターのアーキテクチャ」では、必須の EE インターフェイスを実装し、共通言語ランタイムのシンボル プロバイダー (SP) とバインダー インターフェイスを呼び出す方法について説明します。

式エバリュエーターを登録する」では、 EE がそれ自体を共通言語ランタイム環境と Visual Studio ランタイム環境の両方にクラス ファクトリとして登録する必要があることに注意してください。

式エバリュエーターを実装する」では、式を評価するプロセスに、デバッグ エンジン (DE)、シンボル プロバイダー (SP)、バインダー オブジェクト、および式エバリュエーター (EE) がどのように含まれるかについて説明します。

ローカルの表示」では、実行が一時停止したときに、デバッグ パッケージがローカル変数と引数の一覧を取得するために、どのように DE を呼び出すかについて説明します。

ウォッチ ウィンドウの式の評価」では、Visual Studio のデバッグ パッケージが、ウォッチ リスト内の各式の現在の値を確認するために DE を呼び出す方法について説明します。

ローカルの値を変更する」では、ローカルの値を変更するときに、[ローカル] ウィンドウの各行に、ローカルの名前、型、および現在の値を提供するオブジェクトが関連付けられていることについて説明します。

型のビジュアライザーとカスタム ビューアーの実装」では、型のビジュアライザーとカスタム ビューアーをサポートするために、コンポーネントによって実装する必要があるインターフェイスについて説明します。

Visual Studio デバッガーの機能拡張