Freigeben über


Expression evaluator (Ausdrucksauswertung)

Ausdrucksauswerter (EE) untersuchen die Syntax einer Sprache, um Variablen und Ausdrücke zur Laufzeit zu analysieren und auszuwerten, so dass sie vom Benutzer angezeigt werden können, wenn sich die IDE im Pause-Modus befindet.

Ausdrucksauswerter verwenden

Ausdrücke werden mit der Methode ParseText wie folgt erstellt:

  1. Die Debug-Engine (DE) implementiert die Schnittstelle IDebugExpressionContext2.

  2. Das Debuggen eines Pakets erhält ein IDebugExpressionContext2 Objekt von einer IDebugStackFrame2-Schnittstelle und ruft dann die IDebugStackFrame2::ParseText Methode auf, um ein IDebugExpression2-Objekt zu erhalten.

  3. Das Debuggen eines Pakets ruft die Methode EvaluateSync oder die Methode EvaluateAsync auf, um den Wert des Ausdrucks zu ermitteln. IDebugExpression2::EvaluateAsync wird aus dem Fenster Befehl/Immediate aufgerufen. Alle anderen UI-Komponenten rufen IDebugExpression2::EvaluateSync auf.

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

    Während der Ausdrucksauswertung benötigt die EE Informationen von der Symbolanbieterkomponente. Der Symbolanbieter liefert die symbolischen Informationen, die zur Identifizierung und zum Verständnis des geparsten Ausdrucks verwendet werden.

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

Hinweise zur Implementierung

Die Visual Studio-Debug-Engines erwarten, dass sie über Common Language Runtime (CLR)-Schnittstellen mit dem Ausdrucksauswerter kommunizieren. Daher muss ein Ausdrucksauswerter, der mit den Debugging-Engines von Visual Studio funktioniert, die CLR unterstützen (eine vollständige Liste aller CLR-Debugging-Schnittstellen finden Sie in debugref.doc, das Teil des Windows Software Development Kit (SDK) ist).

Weitere Informationen