Compartilhar via


Exibir locais

Importante

No Visual Studio 2015, essa maneira de implementar avaliadores de expressão foi preterida. Para obter informações sobre como implementar avaliadores de expressão CLR, confira Avaliadores de expressão CLR e Exemplo de avaliador de expressão gerenciado.

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

Para exibir locais, o DE chama o método GetMethodProperty pertencente ao EE e fornece a ele um contexto de avaliação, ou seja, um provedor de símbolos (SP), o endereço de execução atual e um objeto associador. Para obter mais informações, confira Contexto de avaliação. Se a chamada ocorrer com êxito, o método IDebugExpressionEvaluator::GetMethodProperty 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 somente locais e enumerado para produzir uma lista de estruturas 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 sequências formatadas, que são adequadas para a exibição. Normalmente, o nome, o tipo e o valor são exibidos juntos em uma linha da janela Locais.

Observação

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

Nesta seção

A página Sample implementation of locals usa exemplos para percorrer o processo de implementação de locais.