Partilhar via


Avaliador de expressão

Avaliadores de expressão (EE) examinam a sintaxe de uma linguagem para analisar e avaliar as variáveis e expressões em tempo de execução, permitindo que eles sejam exibidos pelo usuário quando o IDE no modo de interrupção.

Usando os avaliadores de expressão

As expressões são criadas usando o IDebugExpressionContext2::ParseText método, da seguinte maneira:

  1. O mecanismo de depuração (DE) implementa o IDebugExpressionContext2 interface.

  2. O pacote de depuração obtém uma IDebugExpressionContext2 de objeto de um IDebugStackFrame2 interface e, em seguida, chama o IDebugStackFrame2::ParseText método para obter um IDebugExpression2 objeto.

  3. As chamadas de pacote de depuração do IDebugExpression2::EvaluateSync método ou a IDebugExpression2::EvaluateAsync método para obter o valor da expressão. IDebugExpression2::EvaluateAsyncé chamado a partir da janela de comando/imediata. Todos os outros componentes de interface do usuário chamar IDebugExpression2::EvaluateSync.

  4. O resultado da avaliação da expressão é um IDebugProperty2 objeto, que contém o nome, tipo e valor do resultado da avaliação da expressão.

Durante a avaliação de expressão, o EE requer informações do componente de provedor do símbolo. O provedor de símbolo fornece as informações simbólicas usadas para identificar e compreender a expressão analisada.

Quando a avaliação da expressão assíncrona for concluída, um evento assíncrono é enviado por DE por meio do Gerenciador de sessão de depuração (SDM) para notificar o IDE para que a avaliação da expressão está completa. Quando a avaliação da expressão síncrona estiver concluída, o resultado da avaliação é retornado da chamada para o IDebugExpression2::EvaluateSync método.

Observações sobre a implementação

O Visual Studio esperam de mecanismos de depuração conversar com o avaliador da expressão usando as interfaces do Common Language Runtime (CLR). Como resultado, um avaliador de expressão que funciona com o Visual Studio mecanismos de depuração devem suportar o CLR (uma lista completa de CLR todas as interfaces de depuração pode ser encontrada em debugref.doc, que faz parte do Windows Software Development Kit (SDK)).

Consulte também

Conceitos

Componentes do depurador