Freigeben über


Schreiben einer Ausdrucksauswertung für die Common Language Runtime

Wichtig

Seit Visual Studio 2015 ist diese Art der Implementierung von Ausdrucksauswertungen veraltet. Informationen zum Implementieren von CLR-Ausdrucksauswertungen finden Sie unter CLR-Ausdrucksauswertungen und Beispiel für die Auswertung verwalteter Ausdrücke.

Die Ausdrucksauswertung (Expression Evaluator, EE) ist teil eines Debugmoduls (Debug Engine, DE), das die Syntax und Semantik der Programmiersprache verarbeitet, die den zu debuggenden Code erzeugt hat. Ausdrücke müssen im Kontext einer Programmiersprache ausgewertet werden. Zum Beispiel bedeutet der Ausdruck „A+B“ in einigen Sprachen „die Summe von A und B“. In anderen Sprachen kann derselbe Ausdruck „A oder B“ bedeuten. Daher muss für jede Programmiersprache, die Objektcode zum Debuggen in der Visual Studio IDE erzeugt, eine eigene EE geschrieben werden.

Einige Aspekte des Visual Studio Debug-Pakets müssen den Code im Kontext der Programmiersprache interpretieren. Wenn zum Beispiel die Ausführung an einem Haltepunkt angehalten wird, müssen alle Ausdrücke, die der Benutzer in ein Überwachungsfenster eingegeben hat, ausgewertet und angezeigt werden. Der Benutzer kann den Wert einer lokalen Variablen ändern, indem er einen Ausdruck in ein Überwachungsfenster oder in das Sofortfenster eingibt.

In diesem Abschnitt

Common Language Runtime and Expression Evaluation (Gemeinsame Sprachlaufzeit und Ausdrucksauswertung) erklärt, dass Sie, wenn Sie eine proprietäre Programmiersprache in die Visual Studio IDE integrieren, eine EE schreiben, die in der Lage ist, Ausdrücke im Kontext der proprietären Sprache auszuwerten, so dass Sie zu einer Microsoft intermediate language (MSIL) kompilieren können, ohne eine Debug-Engine zu schreiben.

Ausdrucksauswertungsarchitektur erläutert, wie die erforderlichen EE-Schnittstellen implementiert und die Common Language Runtime-Symbolanbieter (Symbol Provider, SP) und Binder-Schnittstellen aufgerufen werden.

Bei Registrierung eines Ausdrucksauswerters wird darauf hingewiesen, dass sich die EE sowohl bei der Common Language Runtime als auch bei der Visual Studio-Laufzeitumgebung als Klassen-Zuordnungsinstanz registrieren muss.

Implementieren eines Ausdrucksvaluators beschreibt, wie der Prozess der Auswertung eines Ausdrucks die Debug-Engine (DE), den Symbolanbieter (SP), das Bindeobjekt und den Ausdrucksauswerter (EE) umfasst.

Lokale Variablen anzeigen beschreibt, wie das Debug-Paket bei einer Ausführungspause die DE aufruft, um eine Liste der lokalen Variablen und Argumente zu erhalten.

Auswerten eines Überwachungsfensterausdrucks dokumentiert, wie das Debugpaket von Visual Studio die DE aufruft, um den aktuellen Wert jedes Ausdrucks in der Überwachungsliste zu ermitteln.

Ändern des Wertes einer lokalen Variable erklärt, dass beim Ändern des Wertes einer lokalen Variable jede Zeile des Fensters Lokale Variablen ein zugehöriges Objekt hat, das den Namen, den Typ und den aktuellen Wert einer lokalen Variable angibt.

Implementieren von Visualizern und benutzerdefinierten Viewern erklärt, welche Schnittstelle von welcher Komponente implementiert werden muss, um Visualizer und benutzerdefinierte Viewer zu unterstützen.

Visual Studio Debugger-Erweiterbarkeit