次の方法で共有


ローカルの値を変更する

重要

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

デバッグ パッケージでは、[ローカル] ウィンドウの [値] フィールドに新しい値が入力されたときに、入力された文字列を式エバリュエーター (EE) に渡します。 EE では、単純な値と式のいずれかを含むこの文字列を評価し、結果の値を関連付けられたローカルに格納します。

ここでは、ローカルの値を変更するプロセスの概要を示します。

  1. ユーザーが新しい値を入力すると、Visual Studio で、ローカルに関連付けられた IDebugProperty2 オブジェクトの SetValueAsString が呼び出されます。

  2. IDebugProperty2::SetValueAsString では次のタスクを実行します。

    1. 文字列を評価して値を生成します。

    2. 関連付けられた IDebugField オブジェクトをバインドして、IDebugObject オブジェクトを取得します。

    3. 値を一連のバイトに変換します。

    4. SetValue を呼び出して値のバイトをメモリに格納し、デバッグ中のプログラムからアクセスできるようにします。

  3. Visual Studio の [ローカル] の表示が更新されます (詳細については、「ローカルの表示」を参照してください)。

    この手順は、[ウォッチ] ウィンドウの変数の値を変更する場合にも使用されます。ただし、ローカル自体に関連付けられた IDebugProperty2 オブジェクトではなく、使用されるローカルの値に関連付けられた IDebugProperty2 オブジェクトである点が異なります。

このセクションの内容

値の変更の実装例」では、値を変更するプロセスを段階的に実行するために、MyCEE サンプルを使用しています。