Compartilhar via


Recursos de avaliador de expressões comuns

Este tópico se aplica a:

Edição

Visual Basic

C#

C++

Desenvolvedores Web

Express

Padrão

PRO e equipe

Legenda de tabela:

Aplica-se

Não é aplicada

Comando ou comandos oculta por padrão.

Este tópico descreve os vários recursos de avaliador de expressões comuns para o depurador, variando apenas por linguagem.

Variáveis implícitas

No Visual Basic e translation from VPE for Csharp, você pode criar variáveis implícitas usando o avaliador da expressão.Essas variáveis implícitas nunca saem do escopo e podem ser tratados sistema autônomo qualquer Outros variável.

No translation from VPE for Csharp, você pode criar uma variável implícita, declarando-o no avaliador da expressão.Por exemplo, você pode inserir o código a seguir translation from VPE for Csharp no Imediata janela:

int b = 100;

Quando você executar esse código no Imediata janela, a nova variável implícita aparece no Variáveis locais janela com o sinal $ na frente do nome da variável, nesse caso, $b.

No Visual Basic, você não pode declarar variáveis implícitas no avaliador da expressão.No entanto, se você usar uma variável não declarada no avaliador da expressão do Visual Basic, uma variável implícita é criada automaticamente.No Visual Basic, variáveis implícitas não estão listadas a Variáveis locais janela.

Pontos de interrupção

Se você usar a janela Verificação imediata para avaliar um método Visual Basic ou translation from VPE for Csharp ou função que contém um ponto de interrupção, esse ponto de interrupção é atingido e um novo quadro aparecerá na telefonar Pilha.Aqui está um exemplo de translation from VPE for Csharp:

    class Program
    {
        static void Main(string[] args)
        {
// Breakpoint here:
             int a = 20;
         }
    }

Se você conjunto um ponto de interrupção onde indica o comentário, compilar e executa o programa pressionando F5, atingirá o ponto de interrupção de maneira normal.Se você avaliar o método agoraMain digitando Program.Main(null) para o Imediata janela, o ponto de interrupção será atingido um segundo time, e haverá uma entrada para o método do Pilha de chamadas.

Avaliando em janela Inspeção

Para evitar possíveis efeitos colaterais indesejados, uma telefonar de função ou método não será automaticamente avaliada toda vez que as etapas do depurador.Em vez disso, um ícone permite que você atualizar manualmente o resultado.Ele aparece no Valor coluna.Isso permite que você avalie a telefonar manualmente.Para obter mais informações, consulte Efeitos Colaterias e Expressões.

Identidade de objeto

Este recurso não está disponível para Visual Basic.

Alguns aplicativos criam muitas instâncias de uma classe.Nesses aplicativos é freqüentemente útil ter um identificador para distinguir uma determinada instância da classe.Isso pode ser útil, por exemplo, se uma instância específica da classe não está se comportando sistema autônomo esperado ou uma instância específica foi inserida mais de uma vez para uma coleção só deverá contê-lo uma vez.

Identidade do objeto nativo

Quando você depurar o código não gerenciado, você pode identificar exclusivamente um objeto usando seu endereço.Isso é importante por dois motivos:

  • Você pode controlar um objeto apenas usando seu endereço.Isso inclui a capacidade de usar um endereço para:

    • Exiba o valor do objeto nesse endereço.

    • Verificar a igualdade.Freqüentemente, o endereço de um objeto pode ser usado da mesma forma sistema autônomo a variável de objeto.

  • Você pode usar o endereço de um objeto, a instância, para conjunto um ponto de interrupção em um método nesse caso específico.

    Por exemplo, suponha que você tiver um objeto é uma instância da classe CMyType, com o endereço 0xcccccccc. Você pode especificar um ponto de interrupção de função no método aMethod Essa instância da seguinte maneira:

    ((CMyType *) 0xcccccccc)->aMethod

Identidade de objeto gerenciado

Com código gerenciado, você não pode usar o endereço do objeto para identificá-lo.Em vez disso, você pode usar um número inteiro conhecido sistema autônomo a ID do objeto gerado pelo common linguagem tempo de execução (CLR) depuração de serviços e associado ao objeto.Esse número é um inteiro positivo gerado pelo CLR depuração de serviços.O valor de ID de objeto não tem nenhum significado, exceto para identificar exclusivamente o objeto.

Alças de objeto são exibidas sistema autônomo inteiros de tamanho variável, Decimal, com o sinal numérico (#) acrescentado, sistema autônomo após o número, sem qualquer zeros 5#. Aparecem alças no Valor coluna nas janelas do depurador diferentes dados.

Para criar um identificador de objeto para uma variável, clicar com o botão direito do mouse a variável e selecionar Verifique a ID de objeto.O depurador será exibido um número com o sinal de número (#) sinal acrescentado depois dela, sistema autônomo 123#. Para excluir uma identificação de objeto, clicar com o botão direito do mouse a variável e selecionar Excluir ID do objeto.

Quando um ponto de interrupção é atingido, você pode digitar o identificador da variável no Observação janela.O depurador exibe o valor da ID do objeto e você pode expandir e inspecione-o assim como qualquer Outros variável.

Você pode usar a ID do objeto para conjunto um ponto de interrupção em um método de uma instância específica.Por exemplo, suponha que você tiver um objeto é uma instância da classe CMyType, e a instância tem o ID de objeto 5#. De classeCMyType inclui um método aMethod. Você pode conjunto um ponto de interrupção de função em método aMethod da instância 5# sistema autônomo a seguir:

((CMyType) 5#).aMethod

Você também pode usar a ID do objeto em uma condição de ponto de interrupção.O exemplo a seguir mostra como você pode testar a ID do objeto em uma condição.

this == 5#

Para obter informações sobre como especificar uma condição de ponto de interrupção, consulte Como: Especificar uma condição de ponto de interrupção.

Consulte também

Conceitos

Exibindo Dados no Depurador

Outros recursos

Expressões no depurador

Guia para o depurador