Compartilhar via


Avaliar expressões

As expressões são criadas a partir de cadeias de caracteres transmitidas das janelas Autos, Watch, QuickWatch ou Immediate. Quando uma expressão é avaliada, ela gera uma cadeia de caracteres imprimível que contém o nome e o tipo de variável ou argumento e seu valor. Essa cadeia de caracteres é exibida na janela IDE correspondente.

Implementação

As expressões são avaliadas quando um programa é interrompido em um ponto de interrupção. A expressão em si é representada por uma interface IDebugExpression2, que representa uma expressão analisada que está pronta para vinculação e avaliação dentro do contexto de avaliação de expressão determinado. O quadro de pilha determina o contexto de avaliação de expressão, que o mecanismo de depuração (DE) fornece implementando a interface IDebugExpressionContext2 .

Dada uma cadeia de caracteres do usuário e uma interface IDebugExpressionContext2, um mecanismo de depuração (DE) pode obter uma interface IDebugExpression2 passando a cadeia de caracteres do usuário para o método IDebugExpressionContext2::P arseText. A interface IDebugExpression2 retornada contém a expressão analisada pronta para avaliação.

Com a IDebugExpression2 interface, o DE pode obter o valor da expressão por meio de avaliação de expressão síncrona ou assíncrona, usando IDebugExpression2::EvaluateSync ou IDebugExpression2::EvaluateAsync. Esse valor, juntamente com o nome e o tipo da variável ou argumento, é enviado ao IDE para exibição. O valor, o nome e o tipo são representados por uma interface IDebugProperty2 .

Para habilitar a avaliação de expressão, um DE deve implementar as interfaces IDebugExpression2 e IDebugExpressionContext2. A avaliação síncrona e assíncrona requer a implementação do método IDebugProperty2::GetPropertyInfo .