Exercício - Executar código no ambiente de depuração
A interface do usuário do Visual Studio Code permite que os desenvolvedores executem seu código em um ambiente de depuração. O suporte para depuração é fornecido por extensões e, para desenvolvedores C#, o suporte ao depurador é fornecido pela mesma extensão que fornece suporte para desenvolvimento de código e IntelliSense.
Depurador e interação de aplicações
Um depurador de código pode ser usado para pausar e retomar a execução do código, examinar o estado da variável e até mesmo alterar os valores atribuídos às variáveis em tempo de execução. Você pode estar se perguntando, como o depurador pode controlar e modificar um aplicativo em execução? A resposta curta é: o depurador tem acesso ao ambiente de tempo de execução do aplicativo e ao código executável.
Observação
A interação do depurador com o ambiente de execução é um tópico avançado. Além disso, entender como o depurador funciona nos bastidores não é um requisito para usar o depurador. No entanto, a seguinte descrição pode satisfazer a sua curiosidade.
O depurador Visual Studio Code para C# utiliza o runtime .NET para iniciar e interagir com uma aplicação. Quando o utilizador inicia o depurador, este cria uma nova instância do ambiente de execução e executa a aplicação dentro dessa instância. O ambiente de execução inclui uma interface de programação de aplicativos (API), que o depurador usa para conectar-se ao processo em execução (seu aplicativo).
Uma vez que a sua aplicação está a correr e o depurador está ligado, o depurador comunica com o processo em execução usando as APIs de depuração do runtime .NET e um protocolo de depuração padrão. O depurador pode interagir com o processo (o aplicativo em execução na instância de tempo de execução do .NET) definindo pontos de interrupção, passando pelo código e inspecionando variáveis. A interface do depurador do Visual Studio Code permite que você navegue pelo código-fonte, exiba pilhas de chamadas e avalie expressões.
A maneira mais comum de especificar uma sessão de depuração é uma configuração de inicialização no arquivo launch.json. Essa abordagem é a opção padrão habilitada pelas ferramentas do depurador. Por exemplo, se você criar um aplicativo de console em C# e selecionar Iniciar depuração no menu Executar , o depurador usará essa abordagem para iniciar, anexar e interagir com seu aplicativo.
Criar um novo projeto de código
A primeira etapa para aprender as ferramentas do depurador é criar um projeto de código que você pode executar no depurador.
Abra uma nova instância do Visual Studio Code.
No menu Arquivo , selecione Abrir pasta.
Na caixa de diálogo Abrir pasta , navegue até a pasta da área de trabalho do Windows.
Na caixa de diálogo Abrir pasta , selecione Nova pasta.
Nomeie a nova pasta Debug101 e selecione Selecionar pasta.
No menu Terminal , selecione Novo Terminal.
Um comando .NET CLI pode ser usado para criar um novo aplicativo de console.
No prompt de comando do painel TERMINAL, digite o seguinte comando:
dotnet new consoleFeche o painel TERMINAL.
Examinar configurações de inicialização para depuração
Visual Studio Code usa um arquivo de configuração de inicialização para especificar o aplicativo que é executado no ambiente de depuração.
Se a pasta Debug101 não incluir um arquivo Debug101.sln, selecione Program.cs e verifique se um arquivo .sln foi criado.
Abrir um arquivo de código C# solicita que o ambiente verifique se há arquivos de projeto. O arquivo .sln é um arquivo de solução que é usado pelo Visual Studio para gerenciar projetos e geralmente é criado automaticamente quando você cria um novo projeto no Visual Studio Code. O arquivo .sln é usado pelo depurador para identificar o projeto que deve ser executado no ambiente de depuração.
No menu Exibir, selecione Paleta de comandos.
No prompt de comando, digite .net: g e selecione .NET: Gerar ativos para compilação e depuração.
Observe a nova
.vscodepasta que foi adicionada à pasta do projeto.
A
.vscodepasta contém arquivos que são usados para configurar o ambiente de depuração.Expanda a
.vscodepasta e, em seguida, selecione o arquivo launch.json .Reserve um minuto para examinar o arquivo launch.json.
O arquivo de configurações de inicialização pode incluir várias configurações. Cada configuração inclui uma coleção de atributos que são usados para definir essa configuração.
Observe que o atributo prelaunchTask especifica uma tarefa de compilação .
.vscodeNa pasta, selecione tasks.json.Observe que o arquivo tasks.json contém a tarefa de compilação para seu projeto de código.
Feche os launch.json e tasks.json ficheiros.
Você examina mais de perto os atributos de configuração de inicialização mais adiante neste módulo.
Execute o código a partir do menu Executar
O menu Executar no Visual Studio Code fornece a opção de executar seu código com ou sem o depurador.
Abra o arquivo Program.cs .
Substitua o conteúdo do arquivo Program.cs pelo seguinte código:
/* This code uses a names array and corresponding methods to display greeting messages */ string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" }; string messageText = ""; foreach (string name in names) { if (name == "Sophia") messageText = SophiaMessage(); else if (name == "Andrew") messageText = AndrewMessage(); else if (name == "AllGreetings") messageText = SophiaMessage(); messageText = messageText + "\n\r" + AndrewMessage(); Console.WriteLine(messageText + "\n\r"); } bool pauseCode = true; while (pauseCode == true); static string SophiaMessage() { return "Hello, my name is Sophia."; } static string AndrewMessage() { return "Hi, my name is Andrew. Good to meet you."; }No menu Arquivo , selecione Salvar.
Abra o menu Executar .
Observe que o menu Executar fornece opções para executar seu código com ou sem depuração.
No menu Executar , selecione Executar sem depuração
Observe que o painel DEBUG CONSOLE exibe a saída do console e que a barra de ferramentas Debug exibe controles de execução.
O painel DEBUG CONSOLE deve ser exibido abaixo do editor de código. Por padrão, a barra de ferramentas Debug (a pequena barra de ferramentas que exibe controles de execução de código) está localizada acima do Editor de código e centrada horizontalmente na janela Código do Visual Studio.
Na barra de ferramentas Depurar, selecione Parar.
Iniciar uma sessão de depuração a partir do menu Executar
O menu Executar inclui a opção para iniciar uma sessão de depuração.
No menu Executar , selecione Iniciar Depuração
Reserve um minuto para revisar as mensagens exibidas no painel DEBUG CONSOLE.
A saída do seu aplicativo é a mesma de quando você executou sem depuração, mas outras mensagens relacionadas à preparação do ambiente de depuração são exibidas.
Observe as mensagens sobre como carregar recursos .NET e seu aplicativo Debug101.
As duas primeiras mensagens reportam o carregamento da biblioteca .NET e depois da sua aplicação Debug101.
Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.0\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. Loaded 'C:\Users\someuser\Desktop\Debug101\bin\Debug\net10.0\Debug101.dll'. Symbols loaded.O depurador usa uma instância especial do tempo de execução do .NET para controlar a execução do seu aplicativo e avaliar o estado do aplicativo.
Na barra de ferramentas Depurar, selecione Parar.
Execute seu código a partir da vista Executar e Depurar
O modo de exibição RUN AND DEBUG no Visual Studio Code oferece suporte a uma experiência de depuração avançada.
Mude para a vista EXECUTAR E DEPURAR.
Na visualização EXECUTAR E DEPURAR, selecione Iniciar Depuração.
O botão Iniciar Depuração é a seta verde no painel de controle na parte superior da exibição.
Observe que o painel DEBUG CONSOLE mostra as mesmas mensagens sobre a configuração do depurador que foram exibidas ao iniciar um processo de depuração no menu Executar .
Na barra de ferramentas Depurar, selecione Parar.
Examine a saída do seu aplicativo
Antes de fechar o painel DEBUG CONSOLE, reserve um minuto para revisar a saída que seu código produziu.
Observe que a mensagem de saudação de André é repetida inesperadamente.
Durante o restante deste módulo, você usará as ferramentas de depurador de código do Visual Studio para investigar problemas de codificação.
Recapitulação
Aqui estão algumas coisas importantes para lembrar desta unidade:
- O depurador Visual Studio Code para C# utiliza o runtime .NET para iniciar e interagir com uma aplicação.
- O menu Executar do Visual Studio Code tem opções para iniciar um aplicativo com o depurador anexado ou sem ele.
- A barra de ferramentas Depurar inclui um botão para Parar um processo em execução.
- A vista Executar e Depurar inclui uma opção para iniciar a depuração de uma aplicação.