Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Quando você tenta depurar um problema, geralmente está tentando descobrir se as variáveis estão armazenando os valores que você espera que elas tenham em um determinado estado do aplicativo. Alguns dos recursos mais úteis do depurador são aqueles que permitem inspecionar variáveis.
Este artigo mostra como inspecionar variáveis e exibir valores de retorno usando o depurador no Visual Studio. O depurador fornece várias maneiras convenientes de executar essas tarefas, incluindo o seguinte:
- No editor de códigos, é possível exibir dicas de dados e valores de retorno em linha
- Nas janelas do depurador (janelas Autos, Locais e Monitoramento), você pode exibir valores de variáveis
- Em visualizadores, você pode exibir cadeias de caracteres grandes ou objetos .NET complexos
Esses recursos só estão disponíveis durante o debugging. Para saber como iniciar uma sessão de depuração, consulte Iniciar depuração e entrar no modo de paragem.
Observação
Se esta é a primeira vez que você tenta depurar código, talvez queira ler Depuração para iniciantes absolutos e técnicas e ferramentas de depuração antes de passar por este artigo.
Exibir variáveis no editor de código
Muitas vezes, ao depurar, tu procuras uma forma rápida de verificar os valores das propriedades nos objetos no editor de código, e as sugestões de dados são uma boa forma de o fazer.
Enquanto estiver pausado no depurador, mova o rato sobre um objeto e irá ver o seu valor ou o seu valor de propriedade padrão.
Se a variável tiver propriedades, você poderá expandir o objeto para ver todas as suas propriedades.
Para obter informações detalhadas sobre como usar dicas de dados, consulte Exibir valores de dados em dicas de dados.
Exibir valores de retorno embutidos de chamadas de método no editor de código
No código .NET e C++, é possível examinar os valores de retorno ao passar por cima ou sair de uma chamada de método, o que pode ser útil quando o valor de retorno não está armazenado numa variável local. Um método pode ser usado como um parâmetro ou como o valor de retorno de outro método.
A partir do Visual Studio 2022 versão 17.12, você pode exibir valores de retorno de chamadas de método em linha e não apenas na janela Autos.
Com o Copilot ativado, também podes obter assistência específica relacionada ao valor de retorno em linha usando o botão Perguntar ao Copilot que aparece na dica de dados para o valor de retorno.
O depurador também exibe valores pós-retorno embutidos, mostrando o valor de retorno no final da linha de código onde ele retornou.
Você pode clicar com o botão direito do mouse em um valor de retorno embutido e selecionar opções para o tipo de valores de retorno que deseja mostrar embutido.
Definir uma monitorização em variáveis
Você pode usar uma janela de observação para especificar uma variável (ou uma expressão) que deseje monitorizar.
Durante a depuração, clique com o botão direito do mouse em um objeto no editor de códigos e escolha Adicionar inspeção. Abre-se uma janela de observação.
Neste exemplo, você tem um conjunto de observação no objeto e pode ver sua alteração de valor à medida que se move pelo depurador. Ao contrário das outras janelas variáveis , as janelas Watch sempre mostram as variáveis que você está assistindo (elas ficam acinzentadas quando fora do escopo).
Para obter informações detalhadas, consulte Definir um relógio usando o Watch e o QuickWatch Windows.
Ver valores em linha
No código .NET e C++, o Visual Studio exibe o resultado da avaliação em linha para o seguinte: if instruções, loops e valores de parâmetros de função.
Para uma if instrução, o Visual Studio exibe o valor em linha à direita da condição em si.
Para uma instrução loop, o valor em linha aparece da seguinte maneira.
Para parâmetros de função, o valor em linha também aparece à direita.
Se você tem Copilot, você pode obter assistência de IA para a avaliação. Passe o cursor sobre a condição e selecione Analisar com Copilot. O Copilot não apenas divide a condição em suas subexpressões, mas também ajuda a analisar valores inesperados ou incorretos, oferecendo informações sobre por que o resultado pode diferir do que você esperava.
Exibir valores de retorno de consultas LINQ
Enquanto você está pausado no depurador, você pode passar o mouse sobre cláusulas individuais ou segmentos de sua consulta LINQ para avaliar o valor de retorno de consulta imediata.
Se você tiver o Copilot, poderá obter assistência de IA enquanto passa o mouse sobre a consulta LINQ. Selecione o ícone do GitHub Copilot no final da Dica de Dados para analisar a consulta com o Copilot. Em seguida, o Copilot explica a sintaxe da consulta LINQ e esclarece por que você está obtendo o resultado especificado.
Obtenha assistência de IA
Se você tiver o Copilot, poderá obter assistência de IA enquanto observa variáveis no editor de código ou nas janelas Autos ou Locals. Enquanto estiver depurando, clique com o botão direito do mouse em uma variável e use o botão Ask Copilot
Nesse cenário, o Copilot já conhece o contexto da sua pergunta, então você não precisa fornecer contexto no bate-papo. Para obter mais informações, consulte Debug with Copilot.
Inspecionar variáveis nas janelas do depurador (Autos e Locais)
As janelas Autos e Locals mostram valores variáveis enquanto se está a depurar. As janelas só estão disponíveis durante uma sessão de depuração. A janela Autos mostra as variáveis usadas em torno da instrução atual onde o depurador está pausado. A janela Locals mostra variáveis definidas no escopo local, que geralmente é a função ou método atual.
Para abrir a janela Autos, durante a depuração, selecione Depurar >Windows>Autosou pressione Ctrl+Alt+V>A.
A janela Autos está disponível para código C#, Visual Basic, C++ e Python, mas não para JavaScript ou F#.
Para abrir a janela Locais, durante a depuração, selecione Depurar>Windows>Locaisou pressione Alt+4.
Matrizes e objetos expansíveis aparecem nas janelas Automáticos e Locais . Selecione a seta à esquerda do nome de uma variável para expandir a exibição para mostrar campos e propriedades. Aqui está um exemplo de um objeto System.IO.FileStream na janela Locals:
Um valor 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á-lo para hexadecimal, clique com o botão direito do mouse na janela Locals ou Autos e selecione Hexadecimal Display. 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 nas janelas Autos ou Locais, clique duas vezes no valor e insira o novo valor.
Você pode inserir uma expressão para um valor, por exemplo, a + 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++).
Atenção
Certifique-se de entender as consequências antes de alterar valores e expressões. Alguns problemas possíveis são:
A avaliação de algumas expressões pode alterar o valor de uma variável ou afetar o estado do seu programa. Por exemplo, avaliar
var1 = ++var2altera o valor devar1evar2. Diz-se que estas expressões têm efeitos secundários. Os efeitos secundários podem causar resultados inesperados se não tiver conhecimento dos mesmos.A edição de valores de vírgula flutuante pode resultar em pequenas imprecisões devido à conversão decimal para binária de componentes fracionários. Mesmo uma edição aparentemente inofensiva 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 Locals 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 curso, 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.
Para tornar a sua pesquisa mais ou menos completa, utilize a lista pendente Pesquisa Mais Profunda no topo da janela de Autos ou Locais para selecionar quantos níveis de profundidade pretende pesquisar em objetos aninhados.
Fixar propriedades nas janelas Automáticos ou Locais
Observação
Esse recurso é suportado para o .NET Core 3.0 ou superior.
Você pode inspecionar rapidamente objetos pelas suas propriedades nas janelas de Automáticos e Locais com a ferramenta Propriedades Fixáveis . Para usar esta ferramenta, passe o rato sobre uma propriedade e selecione o ícone de alfinete que aparece ou clique com o botão direito do rato e selecione a opção Fixar Membro como Favorito no menu de contexto resultante. Isso move essa propriedade para o 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 novamente o ícone de pino ou escolha a opção Desafixar Membro dos Favoritos no menu de contexto.
pt-PT: 
Você pode alternar entre nomes de propriedade e filtrar propriedades não fixadas ao visualizar a lista de propriedades do objeto nas janelas de Autos ou Locais. Você pode acessar cada opção selecionando os botões na barra de ferramentas acima das janelas Autos ou Locais.
Alterar o contexto da janela Autos ou Locais
Você pode usar a barra de ferramentas Debug Location para selecionar uma função, thread ou processo desejado, que altera o contexto das janelas Autos e Locals.
Para ativar a barra de ferramentas Local de Depuração, clique em uma área 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.
Defina um ponto de interrupção e inicie a depuração. Quando o ponto de interrupção é atingido, a execução é interrompida e você pode ver o local na barra de ferramentas Debug Location toolbar.
Diferenças de linguagem na janela Autos (C#, C++, Visual Basic, Python)
Diferentes linguagens de código exibem diferentes variáveis na janela Autos.
Em C# e Visual Basic, a janela Autos exibe qualquer variável usada na linha atual ou anterior. Por exemplo, no código C# ou Visual Basic, declare as seguintes quatro variáveis:
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 for pausada, a janela Autos exibirá:
O valor de
cé 0, porque a linhac = 3ainda não foi executada.Em C++, a janela Autos exibe as variáveis usadas em pelo menos três linhas antes da linha atual onde a execução é pausada. 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 parar, a janela Autos exibirá:
A variável
enão foi inicializada, porque a linhae = 5ainda não foi executada.
Ver valores de retorno na janela Automáticos
No exemplo a seguir, esse código C# 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 visualizar os valores de retorno das chamadas dos métodos sumVars() e subtractVars() na janela Autos:
Defina um ponto de interrupção na linha
int x = sumVars(a, b) + subtractVars(c, d);.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 retorno na janela Autos:
Abra um visualizador para inspecionar variáveis
Enquanto você está depurando no Visual Studio, você pode exibir cadeias de caracteres grandes ou objetos complexos com visualizadores internos que tornam os dados mais fáceis de inspecionar. Por exemplo:
- O visualizador de strings mostra strings de texto, XML, HTML e JSON que são demasiado longas para uma dica de dados ou janela de depuração. Também pode ajudá-lo a identificar cadeias malformadas. Para obter mais informações, consulte Exibir cadeias de caracteres em um visualizador de cadeia de caracteres.
- Os visualizadores DataSet e IEnumerable mostram objetos de coleção .NET em um visualizador tabular. Para obter mais informações, consulte Visualizadores tabulares em objetos do Visual Studio).
Os visualizadores aparecem nas janelas Autos, sugestões de dados e outras janelas do depurador.
Observação
Se precisar inspecionar elementos da UI XAML ou WPF em um visualizador, veja Inspecionar propriedades XAML ao depurar ou Como usar o visualizador de árvore WPF.
Para abrir um visualizador, deve-se estar em pausa durante a depuração. Passe o cursor sobre uma variável que tenha um valor de visualizador suportado e selecione o ícone de lupa
.