Compartilhar via


Exibir locais

Importante

No Visual Studio 2015, essa forma de implementar avaliadores de expressão é preterida. Para obter informações sobre como implementar avaliadores de expressão CLR, consulte avaliadores de expressão CLR e exemplo de avaliador de expressão gerenciada.

A execução sempre ocorre dentro do contexto de um método, também conhecido como método independente ou método atual. Quando a execução pausa, o Visual Studio chama o DE (mecanismo de depuração) para obter uma lista de variáveis e argumentos locais, chamados coletivamente de locais do método. O Visual Studio exibe esses locais e seus valores na janela Locais .

Para exibir os locais, o DE chama o método GetMethodProperty pertencente ao EE e fornece um contexto de avaliação. Este contexto inclui um provedor de símbolos (SP), o endereço de execução atual e um objeto de binder. Para obter mais informações, consulte o contexto de avaliação. Se a chamada for bem-sucedida, o IDebugExpressionEvaluator::GetMethodProperty método retornará um objeto IDebugProperty2 , que representa o método que contém o endereço de execução atual.

O DE chama EnumChildren para obter um objeto IEnumDebugPropertyInfo2, que é filtrado para retornar apenas variáveis locais e percorrido para produzir uma lista de estruturas de DEBUG_PROPERTY_INFO. Cada estrutura contém o nome, o tipo e o valor de um local. O tipo e o valor são armazenados como cadeias de caracteres formatadas, adequadas para exibição. O nome, o tipo e o valor normalmente são exibidos juntos em uma linha da janela Locais .

Observação

As janelas QuickWatch e Watch também exibem variáveis com o mesmo formato de nome, valor e tipo. No entanto, esses valores são obtidos chamando GetPropertyInfo em vez de IDebugProperty2::EnumChildren.

Nesta seção

A implementação de exemplo de locais usa exemplos para percorrer o processo de implementação de locais.