Tutorial: Depurar um aplicativo de console do .NET usando Visual Studio para Mac
Importante
A Microsoft anunciou a desativação do Visual Studio para Mac. O Visual Studio para Mac não terá mais suporte a partir de 31 de agosto de 2024. As alternativas incluem:
- Visual Studio Code com o Kit de Desenvolvimento em C# e extensões relacionadas, como o .NET MAUI e o Unity.
- Visual Studio em execução no Windows em uma VM no Mac.
- Visual Studio em execução no Windows em uma VM na Nuvem.
Para obter mais informações, confira o comunicado de desativação do Visual Studio para Mac.
Este tutorial apresenta as ferramentas de depuração disponíveis no Visual Studio para Mac.
Pré-requisitos
- Este tutorial funciona com o aplicativo de console que você cria em Criar um aplicativo de console .NET usando o Visual Studio para Mac.
Usar a configuração do 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 versão de um programa não possui informações de depuração simbólica e é totalmente otimizada.
Por padrão, o Visual Studio para Mac usa a configuração de compilação de depuração, portanto, não é necessário alterá-la antes da depuração.
Inicie o Visual Studio para Mac.
Abra o projeto que você criou em Criar um aplicativo de console .NET usando o Visual Studio para Mac.
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:
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.
Defina um ponto de interrupção na linha que exibe o nome, a data e a hora. Para fazer isso, posicione o cursor na linha de código e pressione ⌘\ (comando+\). Outra maneira de definir um ponto de interrupção é selecionando Depurar>Ativar/desativar pontos de interrupção no menu.
O Visual Studio indica a linha na qual o ponto de interrupção é definido destacando-a e exibindo um ponto vermelho na margem esquerda.
Pressione ⌘↵ (comando+enter) para iniciar o programa no modo de depuração. Outra maneira de iniciar a depuração é escolhendo Depurar>Iniciar Depuração no menu.
Digite uma cadeia de caracteres na janela do terminal quando o programa solicitar um nome e, em seguida, pressione Enter.
A execução do programa para quando ele atinge o ponto de interrupção antes de o método
Console.WriteLine
ser executado.
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.
Se a janela Imediata não estiver visível, exiba-a escolhendo Exibir>Janelas de Depurar>Imediata.
Insira
name = "Gracie"
na janela Imediato e pressione Enter.Digite
currentDate = currentDate.AddDays(1)
na janela Imediato e pressione Enter.A janela Imediata exibe o novo valor da variável de cadeia de caracteres e as propriedades do valor DateTime.
A janela Locais exibe os valores das variáveis que são definidas no método que está sendo executado no momento. Os valores das variáveis que você acabou de alterar são atualizados na janela Locais.
Pressione ⌘↵ (comando+enter) para continuar a depuração.
Os valores exibidos no terminal também correspondem às alterações feitas na janela Imediata.
Se o Terminal não foi exibido, selecione Terminal – HelloWorld na barra de navegação inferior.
Pressione qualquer tecla para encerrar o programa.
Feche a janela do terminal.
Definir um ponto de interrupção condicional
O programa exibe uma 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.
ctrl-clique no ponto vermelho que representa o ponto de interrupção. No menu de contexto, selecione Editar ponto de interrupção.
Na caixa de diálogo Editar ponto de interrupção, insira o código a seguir no campo após E a seguinte condição é verdadeira e selecione Aplicar.
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 retornatrue
.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.
Pressione ⌘↵ (comando+enter) para iniciar a depuração.
Na janela do terminal, pressione Enter quando solicitado a inserir seu nome.
Como a condição especificada (
name
énull
ou String.Empty) foi atendida, a execução do programa para quando ele chega no ponto de interrupção.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ávelname
é""
, ou seja, String.Empty.Também é possível ver se o valor é uma cadeia de caracteres vazia inserindo o nome da variável
name
na janela Imediata e pressionando Enter.Pressione ⌘↵ (comando+enter) para continuar a depuração.
Na janela do terminal, pressione qualquer tecla para sair do programa.
Feche a janela do terminal.
Desmarque o ponto de interrupção clicando no ponto vermelho na margem esquerda da janela de código. Outra maneira de desmarcar um ponto de interrupção é escolhendo Depurar > Ativar/desativar pontos 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.
Defina um ponto de interrupção na chave que marca o início do método
Main
(pressione o comando+\).Pressione ⌘↵ (comando+enter) para iniciar a depuração.
O Visual Studio para na linha com o ponto de interrupção.
Pressione ⇧⌘I (shift+comando+I) ou selecione Depurar>Intervir para avançar uma linha.
O 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
args
está vazia ename
ecurrentDate
têm valores padrão. Além disso, o Visual Studio abriu um terminal em branco.Pressione ⇧⌘I (shift+comando+I).
O Visual Studio destaca a instrução que inclui a atribuição de variável
name
. A janela Locais mostra quename
énull
, e o terminal exibe a cadeia de caracteres "Qual é o seu nome?".Responda à solicitação inserindo uma cadeia de caracteres na janela do console e pressionando Enter.
Pressione ⇧⌘I (shift+comando+I).
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 para o método Console.ReadLine. Terminal exibe a cadeia de caracteres inserida no prompt.Pressione ⇧⌘I (shift+comando+I).
A janela Locais mostra o valor da variável
currentDate
após a atribuição da propriedade DateTime.Now. O terminal permanece inalterado.Pressione ⇧⌘I (shift+comando+I).
O Visual Studio chama o método Console.WriteLine(String, Object, Object). O terminal exibe a cadeia de caracteres formatada.
Pressione ⇧⌘U (shift+comando+U) ou selecione Run>Depuração Circular.
O terminal exibe uma mensagem e aguarda até que uma tecla seja pressionada.
Pressione qualquer tecla para encerrar o programa.
Usar a configuração de build da Versão
Quando tiver testado a versão da depuração do seu aplicativo, você deverá compilar e testar a versão de lançamento. A versão de lançamento incorpora otimizações do compilador que podem afetar negativamente o comportamento de um aplicativo. Por exemplo, as otimizações de compilador que são projetadas para melhorar o desempenho podem criar condições de corrida em aplicativos multi-threaded.
Para compilar e testar a versão de Lançamento do aplicativo de console, execute as seguintes etapas:
Altere a configuração de build na barra de ferramentas de Depuração para Lançamento.
Pressione ⌥⌘↵ (opção+comando+enter) para executar sem 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.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de