Freigeben über


Ändern des Werts einer lokalen Variable

Wichtig

Seit Visual Studio 2015 ist diese Art der Implementierung von Ausdrucksauswertungen veraltet. Informationen zur Implementierung von CLR-Ausdruckauswertern finden Sie unter CLR-Ausdruckauswerter und Beispiel für verwaltete Ausdrucksauswerter.

Wenn ein neuer Wert in das Wertefeld des Fensters Lokale Variablen eingegeben wird, übergibt das Debug-Paket die Zeichenfolge in der eingegebenen Form an den Expression-Evaluator (EE). Der EE wertet diese Zeichenkette aus, die entweder einen einfachen Wert oder einen Ausdruck enthalten kann, und speichert den daraus resultierenden Wert in der zugehörigen lokalen Variable.

Dies ist ein Überblick über den Prozess der Änderung des Wertes einer lokalen Variable:

  1. Nachdem der Benutzer den neuen Wert eingegeben hat, ruft Visual Studio SetValueAsString für das IDebugProperty2-Objekt auf, das mit der lokalen Variable verbunden ist.

  2. IDebugProperty2::SetValueAsString führt folgende Ausgaben aus:

    1. Wertet die Zeichenkette aus, um einen Wert zu erzeugen.

    2. Bindet das zugeordnete IDebugField-Objekt, um ein IDebugObject-Objekt zu erhalten.

    3. Konvertiert den Wert in eine Reihe von Bytes.

    4. Ruft SetValue auf, um die Bytes des Wertes im Speicher abzulegen, damit das zu debuggende Programm darauf zugreifen kann.

  3. Visual Studio aktualisiert die Anzeige Lokale Variablen (siehe Anzeige von lokalen Variablen für Details).

    Diese Prozedur wird auch verwendet, um den Wert einer Variablen im Überwachungsfenster zu ändern, nur dass das IDebugProperty2-Objekt, das mit dem Wert der lokalen Variable verknüpft ist, verwendet wird und nicht das IDebugProperty2-Objekt, das mit dem Lokalen selbst verknüpft ist.

In diesem Abschnitt

Beispielimplementierung zum Ändern von Werten verwendet das MyCEE-Beispiel, um den Prozess des Änderns von Werten schrittweise zu durchlaufen.