Partilhar via


Avaliação da expressão em modo de interrupção

A seção a seguir descreve o processo que ocorre quando o depurador está em modo de pausa e deve conduzir a avaliação de expressões.

Processo de avaliação da expressão

A seguir estão as etapas básicas envolvidas na avaliação de uma expressão:

  1. O gerenciador de depuração de sessão (SDM) chama IDebugStackFrame2::GetExpressionContext para obter uma interface de contexto de expressão, IDebugExpressionContext2.

  2. Em seguida, o SDM chama IDebugExpressionContext2::ParseText com a cadeia de caracteres para análise.

  3. Se ParseText não retornar S_OK, o motivo do erro será retornado.

    -caso contrário-

    Se ParseText retornar S_OK, o SDM poderá chamar IDebugExpression2::EvaluateSync ou IDebugExpression2::EvaluateAsync para obter um valor final da expressão analisada.

    • Ao usar IDebugExpression2::EvaluateSync, a interface de callback fornecida comunica o progresso contínuo da avaliação. O valor final é retornado em uma interface IDebugProperty2 .

    • Quando se usa IDebugExpression2::EvaluateAsync, a interface de callback fornecida comunica o processo contínuo da avaliação. Quando a avaliação é concluída, o EvaluateAsync envia uma interface IDebugExpressionEvaluationCompleteEvent2 por meio de um callback. Com essa interface de evento, o valor final resulta com GetResult.