重要
Visual Studio 2015 では、この方法での式エバリュエーターの実装は非推奨です。 CLR 式エバリュエーターの実装については、CLR 式エバリュエーターに関する記事とマネージド式エバリュエーターのサンプルに関する記事をご覧ください。
デバッグ パッケージでは、[ローカル] ウィンドウの [値] フィールドに新しい値が入力されたときに、入力された文字列を式エバリュエーター (EE) に渡します。 EE では、単純な値と式のいずれかを含むこの文字列を評価し、結果の値を関連付けられたローカルに格納します。
ここでは、ローカルの値を変更するプロセスの概要を示します。
ユーザーが新しい値を入力すると、Visual Studio で、ローカルに関連付けられた IDebugProperty2 オブジェクトの SetValueAsString が呼び出されます。
IDebugProperty2::SetValueAsString
では次のタスクを実行します。文字列を評価して値を生成します。
関連付けられた IDebugField オブジェクトをバインドして、IDebugObject オブジェクトを取得します。
値を一連のバイトに変換します。
SetValue を呼び出して値のバイトをメモリに格納し、デバッグ中のプログラムからアクセスできるようにします。
Visual Studio の [ローカル] の表示が更新されます (詳細については、「ローカルの表示」を参照してください)。
この手順は、[ウォッチ] ウィンドウの変数の値を変更する場合にも使用されます。ただし、ローカル自体に関連付けられた
IDebugProperty2
オブジェクトではなく、使用されるローカルの値に関連付けられたIDebugProperty2
オブジェクトである点が異なります。
このセクションの内容
「値の変更の実装例」では、値を変更するプロセスを段階的に実行するために、MyCEE サンプルを使用しています。