Ausdrucksauswertung im Unterbrechungsmodus
Im Folgenden beschreibt den Prozess, der auftritt, wenn sich der Debugger im Unterbrechungsmodus befindet und Ausdrucksauswertung werden muss.
Ausdrucksauswertungs-Prozess
Im Folgenden sind die grundlegenden Schritte, die beim Laden eines Ausdrucks beteiligt sind, ergeben:
Die Aufrufe Debuggen IDebugStackFrame2::GetExpressionContext des Managers der Sitzung (SDM) zum Abrufen einer Ausdruckskontext Oberfläche, IDebugExpressionContext2.
Das SDM ruft dann IDebugExpressionContext2::ParseText mit der zu analysierenden an Zeichenfolge.
Wenn ParseText nicht S_OK zurückgibt, wird der Grund für den Fehler zurückgegeben.
Andernfalls -
Wenn ParseText S_OK zurückgibt, kann das SDM entweder IDebugExpression2::EvaluateSync oder IDebugExpression2::EvaluateAsync aufrufen, um ein endgültiger Wert aus dem analysierten Ausdruck abzurufen.
Bei der Verwendung von IDebugExpression2::EvaluateSync, wird die angegebene Rückrufschnittstelle verwendet, um den laufenden Prozess der Auswertung zu übermitteln. Der endgültige Wert wird in einer IDebugProperty2-Schnittstelle zurückgegeben.
Bei der Verwendung von IDebugExpression2::EvaluateAsync, wird die angegebene Rückrufschnittstelle verwendet, um den laufenden Prozess der Auswertung zu übermitteln. Wenn die Auswertung abgeschlossen ist, sendet EvaluateAsync eine IDebugExpressionEvaluationCompleteEvent2-Schnittstelle vom Rückruf. Mit dieser Ereignisschnittstelle kann der endgültige Wert mit IDebugExpressionEvaluationCompleteEvent2::GetResultabgerufen werden.