Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tutorial apresenta as ferramentas de depuração disponíveis no Visual Studio.
Importante
Todos os atalhos de teclado são baseados nos padrões de Visual Studio. Os atalhos de teclado podem variar, para obter mais informações, consulte os atalhos Keyboard em Visual Studio.
Este tutorial apresenta as ferramentas de depuração disponíveis em Visual Studio Code para trabalhar com aplicativos .NET.
Este tutorial apresenta as ferramentas de depuração disponíveis em GitHub Codespaces para trabalhar com aplicativos .NET.
Pré-requisitos
Este tutorial funciona com o aplicativo de console que você cria em Criar um aplicativo de console .NET.
Usar a configuração de build de depuração
Debug e Release são as configurações de build internas do Visual Studio. Use a configuração de build de Debug para depuração e a configuração de build de Release para a distribuição final.
Na configuração de Depuração, um programa é compilado com informações de depuração simbólicas completas e sem otimização. A otimização complica a depuração, pois a relação entre o código-fonte e as instruções geradas é mais complexa. A configuração de lançamento de um programa não tem informações simbólicas de depuração e é totalmente otimizada.
Por padrão, o Visual Studio usa a configuração de depuração, então você não precisa alterá-la antes de iniciar a depuração.
Inicie Visual Studio.
Abra o projeto que você criou em Criar um aplicativo de console .NET.
A configuração de build atual é mostrada na barra de ferramentas. A imagem da barra de ferramentas a seguir mostra que Visual Studio está configurado para compilar a versão de depuração do aplicativo:
Definir um ponto de interrupção
Um ponto de interrupção interrompe temporariamente a execução do aplicativo antes que a linha com o ponto de interrupção seja executada.
Defina um ponto de interrupção na linha que exibe o nome, a data e a hora clicando na margem esquerda da janela de código nessa linha. A margem esquerda está à esquerda dos números das linhas. Outras maneiras de definir um ponto de interrupção são colocando o cursor na linha de código e pressionando F9 ou escolhendo DepurarPonto de Interrupção na barra de menus.
Como mostra a imagem a seguir, Visual Studio indica a linha na qual o ponto de interrupção é definido realçando-o e exibindo um ponto vermelho na margem esquerda.
Pressione F5 para executar o programa no modo de Depuração. Outra maneira de iniciar a depuração é escolhendo DepurarIniciar Depuração no menu.
Insira uma cadeia de caracteres na janela do console quando o programa solicitar um nome e pressione Enter.
A execução do programa é interrompida quando atinge o ponto de interrupção e antes da execução do método. A janela Locals exibe os valores das variáveis definidas no método em execução no momento.
Inicie Visual Studio Code.
Abra a pasta do projeto que você criou em Criar um aplicativo de console .NET.
Abra o arquivo Program.cs.
Defina um ponto de interrupção na linha que exibe o nome, a data e a hora clicando na margem esquerda da janela de código. A margem esquerda está à esquerda dos números das linhas. Outras maneiras de definir um ponto de interrupção são pressionar F9 ou escolher ExecutarAlternar Ponto de Interrupção no menu com a linha de código selecionada.
Visual Studio Code indica a linha na qual o ponto de interrupção é definido exibindo um ponto vermelho na margem esquerda.
Conjunto de pontos de interrupção
Abra o GitHub Codespace criado em Criar um aplicativo de console .NET.
Abra o arquivo de HelloWorld.cs .
Defina um ponto de interrupção na linha que exibe o nome, a data e a hora clicando na margem esquerda da janela de código. A margem esquerda está à esquerda dos números das linhas. Você também pode definir um ponto de interrupção pressionando F9 enquanto a linha de código está selecionada.
Conjunto de pontos de interrupção
Iniciar a depuração
A execução do programa é interrompida quando atinge o ponto de interrupção, conforme descrito na seção anterior. A janela Locals exibe os valores das variáveis definidas no método em execução no momento.
Debug e Release são as configurações de build internas do .NET. Use a configuração de build de Debug para depuração e a configuração de build de Release para a distribuição final.
Por padrão, as configurações de inicialização do Visual Studio Code usam a configuração de build de debug, então você não precisa alterá-la antes da depuração.
Abra a vista de depuração selecionando o ícone de depuração no menu à esquerda.
Selecione Executar e Depurar. Se solicitado, selecione C# e, em seguida, selecione C#: Iniciar projeto de inicialização. Outras maneiras de iniciar o programa no modo de depuração são pressionando F5 ou escolhendo ExecutarIniciar Depuração no menu.
Iniciar depuração
Se for solicitado a selecionar Configuração de Inicialização, selecione C#: Depurar Arquivo Ativo.
Selecione a guia Console de Depuração para ver o prompt "Qual é o seu nome?" exibido pelo programa antes de aguardar uma resposta.
Selecione a guia Console de Depuração
Insira uma cadeia de caracteres na janela Console de Depuração em resposta ao prompt para um nome, depois pressione Enter.
A execução do programa é interrompida quando atinge o ponto de interrupção e antes da execução do método. A seção Locals da janela Variáveis exibe os valores das variáveis definidas no método em execução no momento.
Ponto de interrupção atingido, mostrando Locais
Por padrão, o GitHub Codespaces usa a configuração de compilação Debug, portanto, você não precisa alterá-la antes da depuração.
Abra a vista de depuração selecionando o ícone de depuração no menu à esquerda.
Selecione Executar e Depurar. Se solicitado, selecione C# como o depurador e selecione C#: Depurar Arquivo Ativo como a Configuração de Inicialização.
Selecione a guia Console de Depuração para ver o prompt "Qual é o seu nome?" exibido pelo programa antes de aguardar uma resposta.
Insira uma cadeia de caracteres na janela Console de Depuração em resposta ao prompt para um nome, depois pressione Enter.
A execução do programa é interrompida quando atinge o ponto de interrupção e antes da execução do método. A seção Locals da janela Variáveis exibe os valores das variáveis definidas no método em execução no momento.
Ponto de interrupção atingido, mostrando Locais
Usar a janela Imediata
A janela Imediata permite que você interaja com o aplicativo que está depurando. Você pode alterar interativamente o valor das variáveis para ver como ela afeta seu programa.
Se a janela Immediate não estiver visível, exiba-a escolhendo Debug>Windows>Immediate.
Insira na janela Imediato e pressione a tecla Enter .
Insira na janela Imediato e pressione a tecla Enter .
A janela Imediata exibe o valor da variável de cadeia de caracteres e as propriedades do valor. Além disso, os valores das variáveis são atualizados na janela Locais .
Pressione F5 para continuar a execução do programa. Outra maneira de continuar é escolhendo DepurarContinuar no menu.
Os valores exibidos na janela do console correspondem às alterações feitas na janela Imediata .
Pressione qualquer tecla para sair do aplicativo e parar a depuração.
Usar o Console de Depuração
A janela Console de Depuração permite que você interaja com o aplicativo que está depurando. Você pode alterar o valor das variáveis para ver como ela afeta seu programa.
Selecione a guia Console de Depuração.
Insira no prompt na parte inferior da janela do Console de Depuração e pressione Enter.
Alterar valores de variável
Insira na parte inferior da janela Do Console de Depuração e pressione Enter.
A janela Variáveis exibe os novos valores das variáveis e .
Continue a execução do programa selecionando o botão Continuar na barra de ferramentas. Outra maneira de continuar é pressionando F5.
Continuar depurando
Os valores exibidos na janela do console correspondem às alterações feitas no Console de Depuração.
Terminal mostrando os valores inseridos
Pressione Enter para sair do aplicativo e interromper a depuração.
Definir um ponto de interrupção condicional
O programa exibe a cadeia de caracteres que o usuário insere. O que acontece se o usuário não inserir nada? Você pode testar isso com um recurso útil de depuração chamado interrupção condicional.
Clique com o botão direito do mouse no ponto vermelho que representa o ponto de interrupção. No menu de contexto, selecione Condições para abrir a caixa de diálogo Configurações do Ponto de Interrupção . Selecione a caixa para Condições se ela ainda não estiver selecionada.
Editor mostrando o painel de configurações do ponto de interrupção – C#
Para a Expressão Condicional, insira o código a seguir no campo de texto.
string.IsNullOrEmpty(name)String.IsNullOrEmpty(name)Sempre que o ponto de interrupção for atingido, o depurador chamará o método e irá interromper nesta linha somente se a chamada do método retornar.
Em vez de uma expressão condicional, você pode especificar uma contagem de ocorrências, que interrompe a execução do programa antes que uma instrução seja executada um número especificado de vezes. Outra opção é especificar uma condição de filtro, que interrompe a execução do programa com base em atributos como um identificador de thread, nome do processo ou nome do thread.
Selecione Fechar para fechar a caixa de diálogo.
Inicie o programa com a depuração pressionando F5.
Na janela do console, pressione a tecla Enter quando solicitado a inserir seu nome.
Como a condição especificada ( é ou ) foi atendida, a execução do programa é interrompida quando atinge o ponto de interrupção e antes da execução do método.
Selecione a janela Locals , que mostra os valores das variáveis que são locais para o método em execução no momento. Nesse caso, é o método em execução no momento. Observe que o valor da variável é , ou .
Confirme se o valor é uma cadeia de caracteres vazia inserindo a instrução a seguir na janela Imediata e pressionando Enter. O resultado é .
? name == String.Empty? String.IsNullOrEmpty(name)O ponto de interrogação direciona a janela imediata para avaliar uma expressão.
Janela Imediata retornando um valor verdadeiro após a execução da instrução – C#
Pressione F5 para continuar a execução do programa.
Pressione qualquer tecla para fechar a janela do console e parar a depuração.
Desmarque o ponto de interrupção clicando no ponto na margem esquerda da janela de código. Outras maneiras de limpar um ponto de interrupção são pressionando F9 ou escolhendo Depurar Alternar Ponto de Interrupção enquanto a linha de código está selecionada.
Clique com o botão direito do mouse (clique em Ctrl no macOS) no ponto vermelho que representa o ponto de interrupção. No menu de contexto, selecione Editar Ponto de Interrupção para abrir uma caixa de diálogo que permite inserir uma expressão condicional.
Menu de contexto do ponto de interrupção
Selecione na lista suspensa, insira a expressão condicional a seguir e pressione Enter.
String.IsNullOrEmpty(name)Inserir uma expressão condicional
Sempre que o ponto de interrupção for atingido, o depurador chamará o método e irá interromper nesta linha somente se a chamada do método retornar.
Em vez de uma expressão condicional, você pode especificar uma contagem de ocorrências, que interrompe a execução do programa antes que uma instrução seja executada um número especificado de vezes. Outra opção é especificar uma condição de filtro, que interrompe a execução do programa com base em atributos como um identificador de thread, nome do processo ou nome do thread.
Inicie o programa com a depuração pressionando F5.
Na guia Console de Depuração, pressione Enter quando solicitado a digitar seu nome.
Como a condição especificada ( é ou ) foi atendida, a execução do programa é interrompida quando atinge o ponto de interrupção e antes da execução do método.
A janela Variáveis mostra que o valor da variável é , ou .
Confirme se o valor é uma cadeia de caracteres vazia inserindo a instrução a seguir no prompt do Console de Depuração e pressionando Enter. O resultado é .
name == String.EmptySelecione o botão Continuar na barra de ferramentas para continuar a execução do programa.
Pressione Enter para sair do programa e interromper a depuração.
Desmarque o ponto de interrupção clicando no ponto na margem esquerda da janela de código. Outras maneiras de remover um ponto de interrupção são pressionando F9 ou escolhendo Executar Alternar Ponto de Interrupção no menu com a linha de código selecionada.
Se você receber um aviso de que a condição do ponto de interrupção será perdida, selecione Remover Ponto de Interrupção.
Percorrer um programa
Visual Studio também permite que você percorra um programa linha por linha e monitore sua execução. Normalmente, você definiria um ponto de interrupção e seguiria o fluxo do programa por meio de uma pequena parte do código do programa. Como este programa é pequeno, você pode percorrer todo o programa.
Defina um ponto de interrupção na linha de código que exibe o prompt "Qual é o seu nome?".
Escolha DebugEntrar. Outra maneira de depurar uma instrução de cada vez é pressionando F11.
Visual Studio realça e exibe uma seta ao lado da próxima linha de execução.
Neste ponto, a janela Locais mostra que a matriz está vazia e tem valores padrão. Além disso, Visual Studio abriu uma janela de console em branco.
Pressione F11. Visual Studio realça a instrução que inclui a atribuição de variável
name. A janela Locals mostra que é e a janela do console exibe a string "Qual é o seu nome?".Responda ao prompt inserindo uma cadeia de caracteres na janela do console e pressionando Enter. O console não responde e a cadeia de caracteres inserida não é exibida na janela do console, mas, no entanto, o método capturará sua entrada.
Pressione F11. Visual Studio realça a instrução que inclui a atribuição de variável
currentDate. A janela Locals mostra o valor retornado pela chamada para o método. A janela do console também exibe a cadeia de caracteres que você inseriu no prompt.Pressione F11. A janela Locals mostra o valor da variável após a atribuição da propriedade. A janela do console está inalterada.
Pressione F11. Visual Studio chama o método Console.WriteLine(String, Object, Object). A janela do console exibe a cadeia de caracteres formatada.
Escolha DepurarSair da etapa. Outra maneira de interromper a execução passo a passo é pressionando ShiftF11.
A janela do console exibe uma mensagem e aguarda que você pressione uma tecla.
Pressione qualquer tecla para fechar a janela do console e parar a depuração.
Visual Studio Code também permite que você percorra um programa linha por linha e monitore sua execução. Normalmente, você definiria um ponto de interrupção e seguiria o fluxo do programa por meio de uma pequena parte do código do programa. Como este programa é pequeno, você pode percorrer todo o programa.
Defina um ponto de interrupção na linha de código que exibe o prompt "Qual é o seu nome?".
Pressione F5 para iniciar a depuração.
Visual Studio Code realça a linha do ponto de interrupção.
Neste ponto, a janela Variáveis mostra que a matriz está vazia e tem valores padrão.
Selecione Entrar na barra de ferramentas de depuração ou pressione F11.
Botão Step-Into
Visual Studio Code realça a próxima linha.
Visual Studio Code executa o
Console.WriteLinepara o prompt de nome e realça a próxima linha de execução. A próxima linha é o para o . A janela Variáveis permanece inalterada e a guia Terminal mostra o prompt "Qual é o seu nome?".Selecione Entrar ou pressione F11.
Visual Studio Code realça a atribuição de variável
name. A janela Variáveis mostra que ainda é .Responda ao prompt inserindo uma cadeia de caracteres na guia Terminal e pressionando Enter.
A guia Console de Depuração pode não exibir a cadeia de caracteres que você insere enquanto a insere, mas o método capturará sua entrada.
Selecione Entrar ou pressione F11.
Visual Studio Code realça a atribuição de variável
currentDate. A janela Variáveis mostra o valor retornado pela chamada para o método. A guia Terminal exibe a cadeia de caracteres que você inseriu no prompt.Selecione Entrar ou pressione F11.
A janela Variáveis mostra o valor da variável após a atribuição da propriedade.
Selecione Entrar ou pressione F11.
Visual Studio Code chama o método Console.WriteLine(String, Object, Object). A janela do console exibe a cadeia de caracteres formatada.
Selecione Sair ou pressione ShiftF11.
botão Step-Out
O terminal exibe "Pressione qualquer tecla para sair..."
Pressione qualquer tecla para sair do programa.
Usar a configuração de build de versão
Depois de testar a versão Debug do seu aplicativo, você também deverá compilar e testar a versão Release. A versão de lançamento incorpora otimizações de compilador que, eventualmente, podem afetar negativamente o comportamento de um aplicativo. Por exemplo, otimizações de compilador que são projetadas para melhorar o desempenho podem criar condições de disputa em aplicativos multithread.
Para criar e testar a versão Release do seu aplicativo de console, altere a configuração de compilação na barra de ferramentas de Depuração para Release.
Quando você pressiona F5 ou escolhe Build Solution no menu Build, Visual Studio compila a versão de Versão do aplicativo. Você pode testá-lo como fez com a versão Debug.
Para criar e testar a versão de Release do seu aplicativo de console, abra o Terminal e execute o seguinte comando:
dotnet run --configuration Release
Para criar e testar a versão de Release do seu aplicativo de console, execute o seguinte comando no terminal:
dotnet run --configuration Release HelloWorld.cs
Próximas etapas
Neste tutorial, você usou ferramentas de depuração. No próximo tutorial, você publicará uma versão implantável do aplicativo.