Freigeben über


Auswerten von Ausdrücken

Ausdrücke werden aus Zeichenfolgen erstellt, die von den Fenstern "Autos", "Watch", "QuickWatch" oder "Direkt" übergeben werden. Wenn ein Ausdruck ausgewertet wird, wird eine druckbare Zeichenfolge generiert, die den Namen und typ der Variablen oder des Arguments und dessen Wert enthält. Diese Zeichenfolge wird im entsprechenden IDE-Fenster angezeigt.

Implementierung

Ausdrücke werden ausgewertet, wenn ein Programm an einem Haltepunkt beendet wurde. Der Ausdruck selbst wird durch eine IDebugExpression2-Schnittstelle dargestellt, die einen analysierten Ausdruck darstellt, der für die Bindung und Auswertung innerhalb des angegebenen Ausdrucksauswertungskontexts bereit ist. Der Stapelframe bestimmt den Ausdrucksauswertungskontext, den das Debugmodul (DE) durch Implementieren der IDebugExpressionContext2-Schnittstelle bereitstellt.

Aufgrund einer Benutzerzeichenfolge und einer IDebugExpressionContext2-Schnittstelle kann ein Debugmodul (DE) eine IDebugExpression2-Schnittstelle abrufen, indem die Benutzerzeichenfolge an die IDebugExpressionContext2::P arseText-Methode übergeben wird. Die zurückgegebene IDebugExpression2-Schnittstelle enthält den analysierten Ausdruck, der zur Auswertung bereit ist.

Mit der IDebugExpression2 Schnittstelle kann die DE den Wert des Ausdrucks über synchrone oder asynchrone Ausdrucksauswertung mithilfe von IDebugExpression2::EvaluateSync oder IDebugExpression2::EvaluateAsync abrufen. Dieser Wert wird zusammen mit dem Namen und typ der Variablen oder des Arguments an die IDE für die Anzeige gesendet. Der Wert, Name und Typ werden durch eine IDebugProperty2-Schnittstelle dargestellt.

Zum Aktivieren der Ausdrucksauswertung muss eine DE die IDebugExpression2 - und IDebugExpressionContext2-Schnittstellen implementieren. Sowohl synchrone als auch asynchrone Auswertung erfordern die Implementierung der IDebugProperty2::GetPropertyInfo-Methode .