Avaliação de expressão (SDK de depuração do Visual Studio)
Durante o modo de interrupção, o IDE deve avaliar expressões simples envolvendo várias variáveis de programa. Para realizar sua avaliação, o DE (mecanismo de depuração) deve analisar e avaliar uma expressão inserida em uma das janelas do IDE.
As expressões são criadas com o método IDebugExpressionContext2::ParseText e representadas pela interface IDebugExpression2 resultante.
A interface IDebugExpression2 é implementada pelo DE e chama seu método EvalAsync para retornar uma interface IDebugProperty2 para o IDE, a fim de exibir os resultados da avaliação da expressão no IDE. IDebugProperty2::GetPropertyInfo retorna uma estrutura que é usada para colocar o valor de uma expressão em uma janela Inspeção ou na janela Locais.
O pacote de depuração ou o SDM (gerenciador de depuração de sessão) chama IDebugExpression2::EvaluateAsync ou EvaluateSync para obter uma interface IDebugProperty2 que representa o resultado da avaliação. IDebugProperty2
tem métodos que retornam o nome, o tipo e o valor da expressão. Essas informações aparecem em várias janelas do depurador.
Usando a avaliação de expressão
Para usar a avaliação de expressão, você deve implementar o método IDebugExpressionContext2::ParseText e todos os métodos da interface IDebugExpression2, conforme mostrado na tabela a seguir.
Método | Descrição |
---|---|
EvaluateAsync | Avalia uma expressão de modo assíncrono. |
Anular | Encerra a avaliação de expressão assíncrona. |
EvaluateSync | Avalia uma expressão de modo síncrono. |
A avaliação síncrona e assíncrona requer a implementação do método IDebugProperty2::GetPropertyInfo. A avaliação de expressão assíncrona requer a implementação de IDebugExpressionEvaluationCompleteEvent2.