Inspecionar variáveis nas janelas Autos e Locais

O Autos e Locals windows mostram valores de variáveis durante a depuração. As janelas só estão disponíveis durante uma sessão de depuração. O Autos janela mostra as variáveis usadas em torno do ponto de interrupção atual. A janela Locals mostra as variáveis definidas no escopo local, que geralmente é o método ou a função atual.

Observação

Se esta for a primeira vez que você tentou depurar o código, talvez você queira ler Depuração para iniciantes absolutos e técnicas e ferramentas de depuração antes de passar por este artigo.

O Autos janela está disponível para C#, código do Visual Basic, C++ e Python, mas não para JavaScript ou F#.

Para abrir o Autos janela, durante a depuração, selecione Debug > Windows > Autos, ou pressione Ctrl+Alt+V > um.

Para abrir a janela Locals, durante a depuração, selecione Debug > Windows > Locals, ou pressione Alt+4.

Observação

Este tópico aplica-se ao Visual Studio no Windows. Para Visual Studio para Mac, consulte Visualizações de dados no Visual Studio para Mac.

Usar as janelas Autos e Locais

Matrizes e objetos mostram na Autos e locais windows como controles de árvore. Selecione a seta à esquerda de um nome de variável para expandir a exibição para mostrar campos e propriedades. Aqui está um exemplo de uma System.IO.FileStream do objeto na janela Locals:

Captura de tela da janela Locais, com o arquivo definido como um valor System.IO.FileStream.

Um valor de vermelho na janela Locals ou Autos significa que o valor foi alterado desde a última avaliação. A alteração pode ser de uma sessão de depuração anterior ou porque você alterou o valor na janela.

O formato numérico padrão nas janelas do depurador é decimal. Para alterá-la em hexadecimal, clique com botão direito na janela Locals ou Autos e selecione exibição Hexadecimal. Essa alteração afeta todas as janelas do depurador.

Editar valores de variáveis na janela Autos ou Locais

Para editar os valores da maioria das variáveis na Autos ou Locals windows, clique duas vezes o valor e digite o novo valor.

Você pode inserir uma expressão para um valor, por a + b exemplo. O depurador aceita as expressões de linguagem mais válidas.

No código C++ nativo, talvez seja preciso qualificar o contexto de um nome de variável. Para obter mais informações, consulte Operador de contexto (C++).

Cuidado

Certifique-se de entender as consequências antes de alterar valores e expressões. Alguns problemas possíveis são:

  • Avaliar algumas expressões pode alterar o valor de uma variável ou, de outra forma, afetar o estado do programa. Por exemplo, avaliar var1 = ++var2 altera o valor de e var1 var2 . Essas expressões têm efeitos colaterais. Os efeitos colaterais poderão causar resultados inesperados se você não estiver ciente deles.

  • Editar valores de ponto flutuante pode resultar em imprecisões secundárias devido à conversão decimal-binária de componentes fracionários. Até mesmo uma edição aparentemente mimada pode resultar em alterações em alguns dos bits na variável de ponto flutuante.

Pesquisar na janela Autos ou Locais

Você pode pesquisar palavras-chave nas colunas Nome, Valor e Tipo da janela Autos ou Locais usando a barra de pesquisa acima de cada janela. Clique em ENTER ou selecione uma das setas para executar uma pesquisa. Para cancelar uma pesquisa em andamento, selecione o ícone "x" na barra de pesquisa.

Use as setas esquerda e direita (Shift+F3 e F3, respectivamente) para navegar entre as correspondeções encontradas.

Pesquisar na janela Locais

Para tornar sua pesquisa mais ou menos completa, use o menu suspenso Pesquisar mais profundamente na parte superior da janela Autos ou Locais para selecionar quantos níveis você deseja pesquisar em objetos aninhados.

Fixar propriedades na janela Autos ou Locais

Observação

Esse recurso tem suporte para o .NET Core 3.0 ou superior.

Você pode inspecionar rapidamente os objetos por suas propriedades nas janelas Autos e Locais com a ferramenta Propriedades Pinnáveis. Para usar essa ferramenta, passe o mouse sobre uma propriedade e selecione o ícone de pino que aparece ou clique com o botão direito do mouse e selecione a opção Fixar Membro como Favorito no menu de contexto resultante. Isso esbulha essa propriedade na parte superior da lista de propriedades do objeto e o nome e o valor da propriedade são exibidos na coluna Valor. Para desempinar uma propriedade, selecione o ícone de pino novamente ou selecione a opção Unpin Member as Favorite no menu de contexto.

Fixar propriedades na janela Locais

Você também pode alternar nomes de propriedade e filtrar propriedades não fixadas ao exibir a lista de propriedades do objeto nas janelas Autos ou Locais. Você pode acessar cada opção selecionando os botões na barra de ferramentas acima das janelas Autos ou Locais.

Filtrar propriedades favoritas Alternar nomes de propriedade

Alterar o contexto da janela Autos ou Locais

Você pode usar a barra de ferramentas Local de Depuração para selecionar uma função desejada, thread ou processo, que altera o contexto para as janelas Autos e Locals.

Para habilitar a barra de ferramentas local de depuração, clique em uma parte vazia da área da barra de ferramentas e selecione local de depuração da lista suspensa ou selecione exibição > Barras de ferramentas > local de depuração.

Definir um ponto de interrupção e iniciar a depuração. Quando o ponto de interrupção é atingido, a execução para e você pode ver o local na barra de ferramentas local de depuração.

Barra de ferramentas localização de depuração

Variáveis na janela Autos (C#, C++, Visual Basic, Python)

Linguagens de código diferentes exibem variáveis diferentes nos Autos janela.

  • No C# e Visual Basic, a janela Autos exibirá qualquer variável usada na linha atual ou anterior. Por exemplo, em C# ou Visual Basic código, declare as quatro variáveis a seguir:

         public static void Main()
         {
            int a, b, c, d;
            a = 1;
            b = 2;
            c = 3;
            d = 4;
         }
    

    Definir um ponto de interrupção na linha c = 3; e iniciar o depurador. Quando a execução pausa, o Autos janela será exibida:

    Captura de tela da janela Autos, com o valor de c definido como 0.

    O valor de c é 0, porque a c = 3 linha ainda não foi executada.

  • No C++, o Autos janela exibe as variáveis usadas em pelo menos três linhas antes da linha atual em que a execução está em pausa. Por exemplo, no código C++, declare seis variáveis:

         void main() {
             int a, b, c, d, e, f;
             a = 1;
             b = 2;
             c = 3;
             d = 4;
             e = 5;
             f = 6;
         }
    

    Defina um ponto de interrupção na linha e = 5; e execute o depurador. Quando a execução for interrompida, o Autos janela será exibida:

    Captura de tela da janela Autos, com a linha realçada que mostra o int c com um valor de 3.

    A e variável não está reinicializada, porque a e = 5 linha ainda não foi executada.

Exibir valores de retorno de chamadas de método

No código .NET e C++, você pode examinar os valores de retorno na Autos janela ao passar sobre ou fora de uma chamada de método. Pode ser útil exibir valores de retornor de chamadas de método quando eles não são armazenados em variáveis locais. Um método pode ser usado como um parâmetro ou como o valor retornado de outro método.

Por exemplo, o código C# a seguir adiciona os valores de retorno de duas funções:

static void Main(string[] args)
{
    int a, b, c, d;
    a = 1;
    b = 2;
    c = 3;
    d = 4;
    int x = sumVars(a, b) + subtractVars(c, d);
}

private static int sumVars(int i, int j)
{
    return i + j;
}

private static int subtractVars(int i, int j)
{
    return j - i;
}

Para ver os valores de retorno das sumVars() chamadas de método e na janela subtractVars() Autos:

  1. Defina um ponto de interrupção na linha int x = sumVars(a, b) + subtractVars(c, d);.

  2. Inicie a depuração e, quando a execução parar no ponto de interrupção, selecione Step Over ou pressione F10. Você deve ver os seguintes valores de retornados na Autos janela:

Valor de retorno automático C #

Confira também