Exercício – Executar o 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 em C#, o suporte ao depurador é fornecido pela mesma extensão que fornece suporte para desenvolvimento de código e IntelliSense.
Interação do depurador e do aplicativo
Um depurador de código pode ser usado para pausar e retomar a execução de código, examinar o estado da variável e até mesmo alterar os valores atribuídos a variáveis em runtime. Você deve estar se perguntando, como o depurador pode controlar e modificar um aplicativo em execução? A resposta curta é que o depurador tem acesso ao ambiente de runtime 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 descrição a seguir pode satisfazer sua curiosidade.
O depurador do Visual Studio Code para C# usa o ambiente de execução do .NET para iniciar e interagir com um aplicativo. Quando você inicia o depurador, ele cria uma nova instância do runtime e executa o aplicativo dentro dessa instância. O runtime inclui uma API (interface de programação de aplicativo), que o depurador usa para anexar ao processo em execução (seu aplicativo).
Depois que o aplicativo estiver em execução e o depurador estiver anexado, o depurador se comunicará com o processo em execução usando as APIs de depuração do runtime do .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 runtime do .NET) definindo pontos de interrupção, percorrendo o 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 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é sua 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 da CLI do .NET pode ser usado para criar um novo aplicativo de console.
No prompt de comando do painel TERMINAL, insira o seguinte comando:
dotnet new consoleFeche o painel TERMINAL.
Examine as configurações de inicialização para depuração
O Visual Studio Code usa um arquivo de configuração de inicialização para especificar o aplicativo 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 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, insira .net: g e selecione .NET: Gerar Recursos para Compilação e Depuração.
Observe a nova
.vscodepasta que foi adicionada à pasta do projeto.
A
.vscodepasta contém arquivos usados para configurar o ambiente de depuração.Expanda a
.vscodepasta e 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 build .
.vscodeNa pasta, selecione tasks.json.Observe que o arquivo tasks.json contém a tarefa de build para seu projeto de código.
Feche os arquivos launch.json e tasks.json .
Você examinará mais detalhadamente os atributos de configuração de inicialização mais adiante neste módulo.
Execute o seu 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 CONSOLE DEBUG exibe a saída do console e que a barra de ferramentas de depuração exibe controles de execução.
O painel CONSOLE DEBUG deve ser exibido abaixo do Editor de código. Por padrão, a barra de ferramentas de depuração (a barra de ferramentas pequena que exibe controles de execução de código) está localizada acima do Editor de código e centralizada horizontalmente na janela do Visual Studio Code.
Na barra de ferramentas de Depuração, selecione Parar.
Inicie uma sessão de depuração no menu Executar
O menu Executar inclui a opção de 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 são exibidas outras mensagens relacionadas à preparação do ambiente de depuração.
Observe as mensagens sobre o carregamento de recursos do .NET e seu aplicativo Debug101.
As duas primeiras mensagens relatam o carregamento da biblioteca .NET e, em seguida, o aplicativo 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 runtime do .NET para controlar a execução do aplicativo e avaliar o estado do aplicativo.
Na barra de ferramentas de Depuração, selecione Parar.
Execute seu código no painel Executar e Depurar
A exibição RUN AND DEBUG no Visual Studio Code oferece suporte a uma rica experiência de depuração.
Mude para a visualização RUN AND DEBUG.
Na exibiçã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.
Note que o painel DEBUG CONSOLE mostra as mesmas mensagens sobre como configurar o depurador que foram exibidas ao iniciar um processo de depuração no menu Executar.
Na barra de ferramentas de Depuração, selecione Parar.
Examina a saída do aplicativo
Antes de fechar o painel DEBUG CONSOLE, reserve um minuto para revisar a saída produzida pelo seu código.
Observe que a mensagem de saudação de Andrew é repetida inesperadamente.
Durante o restante deste módulo, você usará as ferramentas de depurador do Visual Studio Code para investigar problemas de codificação.
Recapitulação
Estes são alguns pontos importantes desta unidade que você deve se lembrar:
- O depurador do Visual Studio Code para C# usa o runtime do .NET para iniciar e interagir com um aplicativo.
- O menu Executar do Visual Studio Code tem opções para iniciar um aplicativo com e sem o depurador anexado.
- A barra de ferramentas de depuração inclui um botão para parar um processo em execução.
- A exibição RUN AND DEBUG inclui uma opção para iniciar a depuração de um aplicativo.