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:
Menedżer debugowania sesji (SDM) wywołuje element IDebugStackFrame2::GetExpressionContext , aby uzyskać interfejs kontekstu wyrażenia IDebugExpressionContext2.
Następnie SDM wywołuje element IDebugExpressionContext2::P arseText z ciągiem, który ma zostać przeanalizowany.
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::EvaluateSync
programu dany interfejs wywołania zwrotnego komunikuje trwający proces oceny. Końcowa wartość jest zwracana w interfejsie IDebugProperty2 .W przypadku korzystania z
IDebugExpression2::EvaluateAsync
programu 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.