Inspecionar variáveis nas janelas Autos e Locais

O Autos e Locals windows mostram valores de variáveis durante a depuração. As janelas ficam disponíveis apenas durante uma sessão de depuração. A janela Autos mostra variáveis usadas em torno da instrução atual em que o depurador está pausado. 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 sua primeira tentativa de depurar código, leia Depuração para iniciantes absolutos e Técnicas e ferramentas de depuração antes de continuar neste 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 o Visual Studio para Mac, consulte Visualizações de dados no Visual Studio para Mac.

Use 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 e expanda 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.

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.

Se desejar, você pode digitar uma expressão para um valora + b. O depurador aceita a maioria das expressões de linguagem válidas.

No código C++ nativo, talvez seja necessário 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, a avaliação var1 = ++var2 altera o valor de var1 e var2. Afirma-se que essas expressões provocam efeitos colaterais. Efeitos colaterais podem 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. Mesmo uma edição aparentemente inofensiva pode acarretar alterações em alguns 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. Pressione 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 para a esquerda e para a direita (Shift+F3 e F3, respectivamente) para navegar entre as correspondências encontradas.

Captura de tela de Pesquisar na janela Locais

Captura de tela de Pesquisar na janela Locais

Para deixar sua pesquisa mais ou menos completa, use a lista suspensa Pesquisar Mais Profundamente na parte superior da janela Autos ou Locais e selecione quantos níveis de profundidade você deseja pesquisar em objetos aninhados.

Fixar propriedades na janela Autos ou Locais

Observação

Esse recurso tem suporte do .NET Core 3.0 ou superior.

Você pode inspecionar rapidamente objetos segundo suas propriedades na janela Autos e Locais com a ferramenta Propriedades Fixáveis. Para usar essa ferramenta, passe o mouse sobre uma propriedade e selecione o ícone de pino exibido ou clique com o botão direito do mouse e selecione a opção Fixar Membro como Favorito no menu de contexto resultante. Isso coloca a propriedade no topo da lista de propriedades do objeto, e o nome e o valor da propriedade são exibidos na coluna Valor. Para desafixar uma propriedade, selecione o ícone de pino novamente ou selecione a opção Desafixar Membro como Favorito no menu de contexto.

Captura de tela de Fixar propriedades na janela Locais.

Você também pode ativar/desativar os nomes das propriedades e filtrar propriedades não fixadas enquanto exibe a lista de propriedades do objeto na janela Autos ou Locais. Você pode acessar cada opção selecionando os botões na barra de ferramentas acima das janelas Autos ou Locais.

Captura de tela de Filtrar propriedades favoritas.

Captura de tela de Alternar nomes de propriedades.

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 na lista suspensa ou selecione Exibir>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.

Captura de tela de Barra de ferramentas Local de Depuração.

Captura de tela da barra de ferramentas Local 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, no código C# ou Visual Basic, declare as quatro variáveis a seguir:

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

    Defina um ponto de interrupção na linha c = 3; e inicie 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.

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

    O valor de c é 0, pois a linha c = 3 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.

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

    A variável e não foi inicializada, pois a linha e = 5 ainda não foi executada.

Exibir valores retornados 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 retornados 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 retornados das chamadas de método sumVars() e subtractVars() na janela 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:

    Captura de tela do valor retornado de Autos C#.

    Captura de tela do valor retornado de Autos C#.