Freigeben über


Ausdrucksauswertung im Unterbrechungsmodus

Im folgenden Abschnitt wird der Prozess beschrieben, der auftritt, wenn sich der Debugger im Unterbrechungsmodus befindet und eine Ausdrucksauswertung durchführen muss.

Ausdrucksauswertungsprozess

Im Folgenden sind die grundlegenden Schritte zum Auswerten eines Ausdrucks aufgeführt:

  1. Der Sitzungsdebug-Manager (SDM) ruft IDebugStackFrame2::GetExpressionContext auf, um eine Ausdruckskontextschnittstelle abzurufen, IDebugExpressionContext2.

  2. Anschließend ruft die SDM mit der zu analysierenden Zeichenfolge IDebugExpressionContext2::ParseText auf.

  3. Wenn ParseText S_OK nicht zurückgibt, wird der Grund für den Fehler zurückgegeben.

    -sonst-

    Wenn ParseText S_OK zurückgibt, kann die SDM entweder IDebugExpression2::EvaluateSync oder IDebugExpression2::EvaluateAsync aufrufen, um einen endgültigen Wert aus dem analysierten Ausdruck abzurufen.

    • Bei Verwendung IDebugExpression2::EvaluateSynckommuniziert die angegebene Rückrufschnittstelle den laufenden Prozess der Auswertung. Der letzte Wert wird in einer IDebugProperty2-Schnittstelle zurückgegeben.

    • Bei Verwendung IDebugExpression2::EvaluateAsynckommuniziert die angegebene Rückrufschnittstelle den laufenden Prozess der Auswertung. Nach Abschluss der Auswertung sendet EvaluateAsync eine IDebugExpressionEvaluationCompleteEvent2-Schnittstelle über den Rückruf. Mit dieser Ereignisschnittstelle ergibt sich der endgültige Wert mit GetResult.