Tutorial: depurar um aplicativo de console .NET usando o Visual Studio

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 do Visual Studio. Os atalhos de teclado podem variar; para obter mais informações, confira Atalhos de teclado no Visual Studio.

Pré-requisitos

Usar a configuração de build de depuração

Depuração e Lançamento são as configurações de build internas do Visual Studio. Você usa a configuração de build de depuração para depuração e a configuração de lançamento para a distribuição da versão final.

Na configuração de depuração, um programa é compilado com informações de depuração simbólicas e sem otimização. A otimização complica a depuração, porque 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 de depuração simbólica e é totalmente otimizada.

Por padrão, o Visual Studio usa a configuração de build de depuração, portanto, não é necessário alterá-la antes da depuração.

  1. Inicie o Visual Studio.

  2. Abra o projeto que você criou em Criar um aplicativo de console .NET usando o Visual Studio.

    A configuração de build atual é mostrada na barra de ferramentas. A seguinte imagem da barra de ferramentas mostra que o Visual Studio está configurado para compilar na versão de Depuração do aplicativo:

    Visual Studio toolbar with debug highlighted

Definir um ponto de interrupção

Um ponto de interrupção interrompe temporariamente a execução do aplicativo antes de a linha com o ponto de interrupção ser executada.

  1. 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 fica à esquerda dos números de linha. Outras maneiras de definir um ponto de interrupção são colocando o cursor na linha de código e pressionando F9 ou escolhendo Depurar>Alternar Ponto de Interrupção na barra de menus.

    Como mostra a figura a seguir, o Visual Studio indica a linha na qual o ponto de interrupção é definido, realçando-o e exibindo um círculo vermelho na margem esquerda.

    Visual Studio Program window with breakpoint set

  2. Pressione F5 para executar o aplicativo no modo de depuração. Outra maneira de iniciar a depuração é escolhendo Depurar>Iniciar Depuração no menu.

  3. Insira uma cadeia de caracteres na janela do console quando o programa solicitar um nome e pressione Enter.

  4. A execução do programa para quando ele atinge o ponto de interrupção e antes de o método Console.WriteLine ser executado. A janela Locais exibe os valores das variáveis que são definidas no método que está sendo executado no momento.

    Screenshot of a breakpoint in Visual Studio

Usar a janela Imediata

A janela Imediata permite interagir com o aplicativo que você está depurando. Você pode alterar o valor das variáveis de maneira interativa para ver como isso afeta o programa.

  1. Se a janela Imediata não estiver visível, exiba-a escolhendo Depurar>Janelas>Imediata.

  2. Insira name = "Gracie" na janela Imediata e pressione a tecla Enter.

  3. Insira currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() na janela Imediata e pressione a tecla Enter.

    A janela Imediata exibe o valor da variável de cadeia de caracteres e as propriedades do valor DateTime. Além disso, os valores das variáveis são atualizados na janela Locais.

    Locals and Immediate Windows in Visual Studio 2019

  4. Pressione F5 para continuar a execução do programa. Outra maneira de continuar é escolher Depurar>Continuar no menu.

    Os valores exibidos na janela do console correspondem às alterações feitas na janela Imediata.

    Console window showing the entered values

  5. Pressione qualquer tecla para sair do aplicativo e parar a depuração.

Definir um ponto de interrupção condicional

O programa exibe a cadeia de caracteres que o usuário insere. O que acontecerá se o usuário não inserir nada? Isso pode ser testado com um recurso de depuração útil chamado ponto de interrupção condicional.

  1. 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 de Ponto de Interrupção. Selecione a caixa de Condições se ela ainda não estiver selecionada.

    Editor showing breakpoint settings panel - C#

  2. Na Expressão Condicional, insira o código a seguir no campo que mostra o código de exemplo que é testado quando x é 5.

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    Em todas as ocorrências do ponto de interrupção, o depurador chama o método String.IsNullOrEmpty(name) e ele é interrompido nessa linha somente quando a chamada do método retorna true.

    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 determinado número de vezes. Outra opção é especificar uma condição de filtro, que interrompe a execução do programa com base em atributos como identificador de thread, nome do processo ou nome do thread.

  3. Selecione Fechar para fechar a caixa de diálogo.

  4. Inicie o programa com a depuração pressionando F5.

  5. Na janela do console, pressione a tecla Enter quando seu nome for solicitado.

  6. Como a condição especificada (name é null ou String.Empty) foi atendida, a execução do programa é interrompida quando ele chega no ponto de interrupção e antes que o método Console.WriteLine seja executado.

  7. Selecione a janela Locais, que mostra os valores das variáveis que são locais para o método em execução no momento. Nesse caso, Main é o método em execução no momento. Observe que o valor da variável name é "" ou String.Empty.

  8. Confirme se o valor é uma cadeia de caracteres vazia inserindo a seguinte instrução na janela Imediata e pressionando Enter. O resultado é true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    O ponto de interrogação direciona a janela imediata para avaliar uma expressão.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Pressione F5 para continuar a execução do programa.

  10. Pressione qualquer tecla para fechar a janela do console e sair do modo de depuração.

  11. Limpe 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.

Percorrer um programa

O Visual Studio também permite percorrer linha por linha de um programa e monitorar sua execução. Normalmente, você define um ponto de interrupção e segue o fluxo do programa em uma pequena parte do código do programa. Como esse programa é pequeno, você pode percorrer todo o programa.

  1. Escolha Depurar>Intervir. Outra maneira de depurar uma instrução por vez é pressionando F11.

    O Visual Studio realça e exibe uma seta ao lado da próxima linha de execução.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    Neste ponto, a janela Locais mostra que a matriz args está vazia e name e currentDate têm valores padrão. Além disso, o Visual Studio abriu uma janela de console em branco.

  2. Pressione F11. O Visual Studio agora destaca a próxima linha de execução. A janela Locais permanece inalterada e a janela do console permanece em branco.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Pressione F11. O Visual Studio destaca a instrução que inclui a atribuição de variável name. A janela Locais mostra que name é null e a janela do console exibe a cadeia de caracteres "Qual é seu nome?".

  4. Responda à solicitação 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 o método Console.ReadLine vai capturar a entrada.

  5. Pressione F11. O Visual Studio destaca a instrução que inclui a atribuição de variável currentDate. A janela Locais mostra o valor retornado pela chamada ao método Console.ReadLine. A janela do console também exibe a cadeia de caracteres que você inseriu no prompt.

  6. Pressione F11. A janela Locais mostra o valor da variável currentDate após a atribuição da propriedade DateTime.Now. A janela do console não é alterada.

  7. Pressione F11. O Visual Studio chama o método Console.WriteLine(String, Object, Object). A janela do console exibe a cadeia de caracteres formatada.

  8. Escolha Depurar>Etapa de Saída. Outra maneira de interromper a execução passo a passo é pressionar Shift+F11.

    A janela do console exibe uma mensagem e aguarda até que uma tecla seja pressionada.

  9. Pressione qualquer tecla para fechar a janela do console e sair do modo de depuração.

Usar a configuração de build de lançamento

Depois de testar a versão de depuração do aplicativo, você deverá compilar e testar a versão de lançamento. A versão de lançamento incorpora otimizações do compilador que, às vezes, podem afetar negativamente o comportamento de um aplicativo. Por exemplo, as otimizações de compilador que são projetadas para aprimorar o desempenho podem criar condições de corrida em aplicativos multi-threaded.

Para compilar e testar a versão de lançamento do seu aplicativo de console, altere a configuração de build na barra de ferramentas de Depuração para Lançamento.

default Visual Studio toolbar with release highlighted

Quando você pressiona F5 ou escolhe Compilar Solução no menu Build, o Visual Studio compila a versão de lançamento do aplicativo. Você pode testá-la como fez com a versão de depuração.

Próximas etapas

Neste tutorial, você usou as ferramentas de depuração do Visual Studio. No próximo tutorial, você publicará uma versão implantável do aplicativo.

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 do Visual Studio. Os atalhos de teclado podem variar; para obter mais informações, confira Atalhos de teclado no Visual Studio.

Pré-requisitos

Usar a configuração de build de depuração

Depuração e Lançamento são as configurações de build internas do Visual Studio. Você usa a configuração de build de depuração para depuração e a configuração de lançamento para a distribuição da versão final.

Na configuração de depuração, um programa é compilado com informações de depuração simbólicas e sem otimização. A otimização complica a depuração, porque 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 de depuração simbólica e é totalmente otimizada.

Por padrão, o Visual Studio usa a configuração de build de depuração, portanto, não é necessário alterá-la antes da depuração.

  1. Inicie o Visual Studio.

  2. Abra o projeto que você criou em Criar um aplicativo de console .NET usando o Visual Studio.

    A configuração de build atual é mostrada na barra de ferramentas. A seguinte imagem da barra de ferramentas mostra que o Visual Studio está configurado para compilar na versão de Depuração do aplicativo:

    Visual Studio toolbar with debug highlighted

Definir um ponto de interrupção

Um ponto de interrupção interrompe temporariamente a execução do aplicativo antes de a linha com o ponto de interrupção ser executada.

  1. 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 fica à esquerda dos números de linha. Outras maneiras de definir um ponto de interrupção são colocando o cursor na linha de código e pressionando F9 ou escolhendo Depurar>Alternar Ponto de Interrupção na barra de menus.

    Como mostra a figura a seguir, o Visual Studio indica a linha na qual o ponto de interrupção é definido, realçando-o e exibindo um círculo vermelho na margem esquerda.

    Visual Studio Program window with breakpoint set

  2. Pressione F5 para executar o aplicativo no modo de depuração. Outra maneira de iniciar a depuração é escolhendo Depurar>Iniciar Depuração no menu.

  3. Insira uma cadeia de caracteres na janela do console quando o programa solicitar um nome e pressione Enter.

  4. A execução do programa para quando ele atinge o ponto de interrupção e antes de o método Console.WriteLine ser executado. A janela Locais exibe os valores das variáveis que são definidas no método que está sendo executado no momento.

    Screenshot of a breakpoint in Visual Studio

Usar a janela Imediata

A janela Imediata permite interagir com o aplicativo que você está depurando. Você pode alterar o valor das variáveis de maneira interativa para ver como isso afeta o programa.

  1. Se a janela Imediata não estiver visível, exiba-a escolhendo Depurar>Janelas>Imediata.

  2. Insira name = "Gracie" na janela Imediata e pressione a tecla Enter.

  3. Insira currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() na janela Imediata e pressione a tecla Enter.

    A janela Imediata exibe o valor da variável de cadeia de caracteres e as propriedades do valor DateTime. Além disso, os valores das variáveis são atualizados na janela Locais.

    Locals and Immediate Windows in Visual Studio 2019

  4. Pressione F5 para continuar a execução do programa. Outra maneira de continuar é escolher Depurar>Continuar no menu.

    Os valores exibidos na janela do console correspondem às alterações feitas na janela Imediata.

    Console window showing the entered values

  5. Pressione qualquer tecla para sair do aplicativo e parar a depuração.

Definir um ponto de interrupção condicional

O programa exibe a cadeia de caracteres que o usuário insere. O que acontecerá se o usuário não inserir nada? Isso pode ser testado com um recurso de depuração útil chamado ponto de interrupção condicional.

  1. 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 de Ponto de Interrupção. Selecione a caixa de Condições se ela ainda não estiver selecionada.

    Editor showing breakpoint settings panel - C#

  2. Na Expressão Condicional, insira o código a seguir no campo que mostra o código de exemplo que é testado quando x é 5.

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    Em todas as ocorrências do ponto de interrupção, o depurador chama o método String.IsNullOrEmpty(name) e ele é interrompido nessa linha somente quando a chamada do método retorna true.

    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 determinado número de vezes. Outra opção é especificar uma condição de filtro, que interrompe a execução do programa com base em atributos como identificador de thread, nome do processo ou nome do thread.

  3. Selecione Fechar para fechar a caixa de diálogo.

  4. Inicie o programa com a depuração pressionando F5.

  5. Na janela do console, pressione a tecla Enter quando seu nome for solicitado.

  6. Como a condição especificada (name é null ou String.Empty) foi atendida, a execução do programa é interrompida quando ele chega no ponto de interrupção e antes que o método Console.WriteLine seja executado.

  7. Selecione a janela Locais, que mostra os valores das variáveis que são locais para o método em execução no momento. Nesse caso, Main é o método em execução no momento. Observe que o valor da variável name é "" ou String.Empty.

  8. Confirme se o valor é uma cadeia de caracteres vazia inserindo a seguinte instrução na janela Imediata e pressionando Enter. O resultado é true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    O ponto de interrogação direciona a janela imediata para avaliar uma expressão.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Pressione F5 para continuar a execução do programa.

  10. Pressione qualquer tecla para fechar a janela do console e sair do modo de depuração.

  11. Limpe 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.

Percorrer um programa

O Visual Studio também permite percorrer linha por linha de um programa e monitorar sua execução. Normalmente, você define um ponto de interrupção e segue o fluxo do programa em uma pequena parte do código do programa. Como esse programa é pequeno, você pode percorrer todo o programa.

  1. Escolha Depurar>Intervir. Outra maneira de depurar uma instrução por vez é pressionando F11.

    O Visual Studio realça e exibe uma seta ao lado da próxima linha de execução.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    Neste ponto, a janela Locais mostra que a matriz args está vazia e name e currentDate têm valores padrão. Além disso, o Visual Studio abriu uma janela de console em branco.

  2. Pressione F11. O Visual Studio agora destaca a próxima linha de execução. A janela Locais permanece inalterada e a janela do console permanece em branco.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Pressione F11. O Visual Studio destaca a instrução que inclui a atribuição de variável name. A janela Locais mostra que name é null e a janela do console exibe a cadeia de caracteres "Qual é seu nome?".

  4. Responda à solicitação 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 o método Console.ReadLine vai capturar a entrada.

  5. Pressione F11. O Visual Studio destaca a instrução que inclui a atribuição de variável currentDate. A janela Locais mostra o valor retornado pela chamada ao método Console.ReadLine. A janela do console também exibe a cadeia de caracteres que você inseriu no prompt.

  6. Pressione F11. A janela Locais mostra o valor da variável currentDate após a atribuição da propriedade DateTime.Now. A janela do console não é alterada.

  7. Pressione F11. O Visual Studio chama o método Console.WriteLine(String, Object, Object). A janela do console exibe a cadeia de caracteres formatada.

  8. Escolha Depurar>Etapa de Saída. Outra maneira de interromper a execução passo a passo é pressionar Shift+F11.

    A janela do console exibe uma mensagem e aguarda até que uma tecla seja pressionada.

  9. Pressione qualquer tecla para fechar a janela do console e sair do modo de depuração.

Usar a configuração de build de lançamento

Depois de testar a versão de depuração do aplicativo, você deverá compilar e testar a versão de lançamento. A versão de lançamento incorpora otimizações do compilador que, às vezes, podem afetar negativamente o comportamento de um aplicativo. Por exemplo, as otimizações de compilador que são projetadas para aprimorar o desempenho podem criar condições de corrida em aplicativos multi-threaded.

Para compilar e testar a versão de lançamento do seu aplicativo de console, altere a configuração de build na barra de ferramentas de Depuração para Lançamento.

default Visual Studio toolbar with release highlighted

Quando você pressiona F5 ou escolhe Compilar Solução no menu Build, o Visual Studio compila a versão de lançamento do aplicativo. Você pode testá-la como fez com a versão de depuração.

Próximas etapas

Neste tutorial, você usou as ferramentas de depuração do Visual Studio. No próximo tutorial, você publicará uma versão implantável do aplicativo.

Este tutorial apresenta as ferramentas de depuração disponíveis no Visual Studio.

Pré-requisitos

Usar a configuração de build de depuração

Depuração e Lançamento são as configurações de build internas do Visual Studio. Você usa a configuração de build de depuração para depuração e a configuração de lançamento para a distribuição da versão final.

Na configuração de depuração, um programa é compilado com informações de depuração simbólicas e sem otimização. A otimização complica a depuração, porque 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 de depuração simbólica e é totalmente otimizada.

Por padrão, o Visual Studio usa a configuração de build de depuração, portanto, não é necessário alterá-la antes da depuração.

  1. Inicie o Visual Studio.

  2. Abra o projeto que você criou em Criar um aplicativo de console .NET usando o Visual Studio.

    A configuração de build atual é mostrada na barra de ferramentas. A seguinte imagem da barra de ferramentas mostra que o Visual Studio está configurado para compilar na versão de Depuração do aplicativo:

    Visual Studio toolbar with debug highlighted

Definir um ponto de interrupção

Um ponto de interrupção interrompe temporariamente a execução do aplicativo antes de a linha com o ponto de interrupção ser executada.

  1. 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 fica à esquerda dos números de linha. Outras maneiras de definir um ponto de interrupção são colocando o cursor na linha de código e pressionando F9 ou escolhendo Depurar>Alternar Ponto de Interrupção na barra de menus.

    Como mostra a figura a seguir, o Visual Studio indica a linha na qual o ponto de interrupção é definido, realçando-o e exibindo um círculo vermelho na margem esquerda.

    Visual Studio Program window with breakpoint set

  2. Pressione F5 para executar o aplicativo no modo de depuração. Outra maneira de iniciar a depuração é escolhendo Depurar>Iniciar Depuração no menu.

  3. Insira uma cadeia de caracteres na janela do console quando o programa solicitar um nome e pressione Enter.

  4. A execução do programa para quando ele atinge o ponto de interrupção e antes de o método Console.WriteLine ser executado. A janela Locais exibe os valores das variáveis que são definidas no método que está sendo executado no momento.

    Screenshot of a breakpoint in Visual Studio

Usar a janela Imediata

A janela Imediata permite interagir com o aplicativo que você está depurando. Você pode alterar o valor das variáveis de maneira interativa para ver como isso afeta o programa.

  1. Se a janela Imediata não estiver visível, exiba-a escolhendo Depurar>Janelas>Imediata.

  2. Insira name = "Gracie" na janela Imediata e pressione a tecla Enter.

  3. Insira currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() na janela Imediata e pressione a tecla Enter.

    A janela Imediata exibe o valor da variável de cadeia de caracteres e as propriedades do valor DateTime. Além disso, os valores das variáveis são atualizados na janela Locais.

    Locals and Immediate Windows in Visual Studio 2019

  4. Pressione F5 para continuar a execução do programa. Outra maneira de continuar é escolher Depurar>Continuar no menu.

    Os valores exibidos na janela do console correspondem às alterações feitas na janela Imediata.

    Console window showing the entered values

  5. Pressione qualquer tecla para sair do aplicativo e parar a depuração.

Definir um ponto de interrupção condicional

O programa exibe a cadeia de caracteres que o usuário insere. O que acontecerá se o usuário não inserir nada? Isso pode ser testado com um recurso de depuração útil chamado ponto de interrupção condicional.

  1. 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 de Ponto de Interrupção. Selecione a caixa de Condições se ela ainda não estiver selecionada.

    Editor showing breakpoint settings panel - C#

  2. Na Expressão Condicional, insira o código a seguir no campo que mostra o código de exemplo que é testado quando x é 5.

    String.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    Em todas as ocorrências do ponto de interrupção, o depurador chama o método String.IsNullOrEmpty(name) e ele é interrompido nessa linha somente quando a chamada do método retorna true.

    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 determinado número de vezes. Outra opção é especificar uma condição de filtro, que interrompe a execução do programa com base em atributos como identificador de thread, nome do processo ou nome do thread.

  3. Selecione Fechar para fechar a caixa de diálogo.

  4. Inicie o programa com a depuração pressionando F5.

  5. Na janela do console, pressione a tecla Enter quando seu nome for solicitado.

  6. Como a condição especificada (name é null ou String.Empty) foi atendida, a execução do programa é interrompida quando ele chega no ponto de interrupção e antes que o método Console.WriteLine seja executado.

  7. Selecione a janela Locais, que mostra os valores das variáveis que são locais para o método em execução no momento. Nesse caso, Main é o método em execução no momento. Observe que o valor da variável name é "" ou String.Empty.

  8. Confirme se o valor é uma cadeia de caracteres vazia inserindo a seguinte instrução na janela Imediata e pressionando Enter. O resultado é true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    O ponto de interrogação direciona a janela imediata para avaliar uma expressão.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Pressione F5 para continuar a execução do programa.

  10. Pressione qualquer tecla para fechar a janela do console e sair do modo de depuração.

  11. Limpe 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.

Percorrer um programa

O Visual Studio também permite percorrer linha por linha de um programa e monitorar sua execução. Normalmente, você define um ponto de interrupção e segue o fluxo do programa em uma pequena parte do código do programa. Como esse programa é pequeno, você pode percorrer todo o programa. Enquanto não está depurando e o foco está no Visual Studio:

  1. Escolha Depurar>Intervir. Outra maneira de depurar uma instrução por vez é pressionando F11.

    O Visual Studio realça e exibe uma seta ao lado da próxima linha de execução.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    Neste ponto, a janela Locais mostra que a matriz args está vazia e name e currentDate têm valores padrão. Além disso, o Visual Studio abriu uma janela de console em branco.

  2. Pressione F11. O Visual Studio agora destaca a próxima linha de execução. A janela Locais permanece inalterada e a janela do console permanece em branco.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Pressione F11. O Visual Studio destaca a instrução que inclui a atribuição de variável name. A janela Locais mostra que name é null e a janela do console exibe a cadeia de caracteres "Qual é seu nome?".

  4. Responda à solicitação 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 o método Console.ReadLine vai capturar a entrada.

  5. Pressione F11. O Visual Studio destaca a instrução que inclui a atribuição de variável currentDate. A janela Locais mostra o valor retornado pela chamada ao método Console.ReadLine. A janela do console também exibe a cadeia de caracteres que você inseriu no prompt.

  6. Pressione F11. A janela Locais mostra o valor da variável currentDate após a atribuição da propriedade DateTime.Now. A janela do console não é alterada.

  7. Pressione F11. O Visual Studio chama o método Console.WriteLine(String, Object, Object). A janela do console exibe a cadeia de caracteres formatada.

  8. Escolha Depurar>Etapa de Saída. Outra maneira de interromper a execução passo a passo é pressionar Shift+F11.

    A janela do console exibe uma mensagem e aguarda até que uma tecla seja pressionada.

  9. Pressione qualquer tecla para fechar a janela do console e sair do modo de depuração.

Usar a configuração de build de lançamento

Depois de testar a versão de depuração do aplicativo, você deverá compilar e testar a versão de lançamento. A versão de lançamento incorpora otimizações do compilador que, às vezes, podem afetar negativamente o comportamento de um aplicativo. Por exemplo, as otimizações de compilador que são projetadas para aprimorar o desempenho podem criar condições de corrida em aplicativos multi-threaded.

Para compilar e testar a versão de lançamento do seu aplicativo de console, altere a configuração de build na barra de ferramentas de Depuração para Lançamento.

default Visual Studio toolbar with release highlighted

Quando você pressiona F5 ou escolhe Compilar Solução no menu Build, o Visual Studio compila a versão de lançamento do aplicativo. Você pode testá-la como fez com a versão de depuração.

Próximas etapas

Neste tutorial, você usou as ferramentas de depuração do Visual Studio. No próximo tutorial, você publicará uma versão implantável do aplicativo.