Udostępnij za pośrednictwem


Ocena wyrażeń w trybie przerwania

W poniższej sekcji opisano proces, który występuje, gdy debuger jest w trybie przerwania i musi przeprowadzić ocenę wyrażeń.

Proces obliczania wyrażeń

Poniżej przedstawiono podstawowe kroki związane z oceną wyrażenia:

  1. Menedżer debugowania sesji (SDM) wywołuje element IDebugStackFrame2::GetExpressionContext , aby uzyskać interfejs kontekstu wyrażenia IDebugExpressionContext2.

  2. Następnie SDM wywołuje element IDebugExpressionContext2::P arseText z ciągiem, który ma zostać przeanalizowany.

  3. Jeśli funkcja ParseText nie zwraca S_OK, zostanie zwrócona przyczyna błędu.

    -Inaczej-

    Jeśli funkcja ParseText zwróci S_OK, narzędzie SDM może wywołać metodę IDebugExpression2::EvaluateSync lub IDebugExpression2::EvaluateAsync , aby uzyskać ostateczną wartość z przeanalizowanego wyrażenia.

    • W przypadku korzystania z IDebugExpression2::EvaluateSyncprogramu dany interfejs wywołania zwrotnego komunikuje trwający proces oceny. Końcowa wartość jest zwracana w interfejsie IDebugProperty2 .

    • W przypadku korzystania z IDebugExpression2::EvaluateAsyncprogramu dany interfejs wywołania zwrotnego komunikuje trwający proces oceny. Po zakończeniu oceny funkcja EvaluateAsync wysyła interfejs IDebugExpressionEvaluationCompleteEvent2 za pośrednictwem wywołania zwrotnego. Dzięki temu interfejsowi zdarzeń wyniki końcowej wartości za pomocą polecenia GetResult.