Freigeben über


Ausdrucksauswertung

Ausdrucksauswerter (EE) untersuchen die Syntax einer Sprache zum Analysieren und Auswerten von Variablen und Ausdrücken zur Laufzeit, sodass sie vom Benutzer angezeigt werden können, wenn sich die IDE im Unterbrechungsmodus befindet.

Verwenden von Ausdrucksauswertern

Ausdrücke werden mithilfe der ParseText-Methode wie folgt erstellt:

  1. Das Debugmodul (DE) implementiert die IDebugExpressionContext2-Schnittstelle .

  2. Das Debugpaket ruft ein IDebugExpressionContext2 Objekt von einer IDebugStackFrame2-Schnittstelle ab und ruft dann die IDebugStackFrame2::ParseText Methode auf, um ein IDebugExpression2 -Objekt abzurufen.

  3. Das Debugpaket ruft die EvaluateSync-Methode oder die EvaluateAsync-Methode auf, um den Wert des Ausdrucks abzurufen. IDebugExpression2::EvaluateAsync wird über das Befehls-/Direktfenster aufgerufen. Alle anderen UI-Komponenten rufen IDebugExpression2::EvaluateSync auf.

  4. Das Ergebnis der Ausdrucksauswertung ist ein IDebugProperty2-Objekt , das den Namen, typ und den Wert des Ergebnisses der Ausdrucksauswertung enthält.

    Während der Ausdrucksauswertung benötigt der EE Informationen aus der Symbolanbieterkomponente. Der Symbolanbieter liefert die symbolischen Informationen, die zum Identifizieren und Verstehen des analysierten Ausdrucks verwendet werden.

    Wenn die asynchrone Ausdrucksauswertung abgeschlossen ist, wird ein asynchrones Ereignis vom DE über den Sitzungsdebug-Manager (SDM) gesendet, um die IDE zu benachrichtigen, dass die Ausdrucksauswertung abgeschlossen ist. Und das Ergebnis der Auswertung wird dann vom Aufruf der IDebugExpression2::EvaluateSync Methode zurückgegeben.

Implementierungshinweise

Die Visual Studio-Debugmodule erwarten, dass sie mit dem Ausdrucksauswerter über CLR-Schnittstellen (Common Language Runtime) sprechen. Daher muss ein Ausdrucksauswert, der mit den Visual Studio-Debugmodulen arbeitet, die CLR unterstützen (eine vollständige Liste aller CLR-Debugschnittstellen finden Sie in debugref.doc, die Teil des Windows Software Development Kit (SDK)ist).

Siehe auch