Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W poniższej sekcji opisano proces, który występuje, gdy debuger jest w trybie przerwania i musi przeprowadzić ocenę wyrażeń.
Proces ewaluacji wyrażeń
Poniżej przedstawiono podstawowe kroki związane z oceną wyrażenia:
Menedżer debugowania sesji (SDM) wywołuje metodę IDebugStackFrame2::GetExpressionContext, aby uzyskać interfejs kontekstu wyrażenia IDebugExpressionContext2.
Następnie SDM wywołuje IDebugExpressionContext2::ParseText 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, dany interfejs wywołania zwrotnego komunikuje trwający proces ewaluacji. Końcowa wartość jest zwracana w interfejsie IDebugProperty2 .W przypadku korzystania z
IDebugExpression2::EvaluateAsyncdany interfejs zwrotny komunikuje przebieg procesu oceny. Po zakończeniu oceny funkcja EvaluateAsync wysyła interfejs IDebugExpressionEvaluationCompleteEvent2 za pośrednictwem wywołania zwrotnego. Dzięki temu interfejsowi zdarzeń ostateczny wynik uzyskuje się przy użyciu GetResult.