Exercício - Executar código no ambiente de depuração

Concluído

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.

  1. Abra uma nova instância do Visual Studio Code.

  2. No menu Arquivo , selecione Abrir pasta.

  3. Na caixa de diálogo Abrir pasta , navegue até a pasta da área de trabalho do Windows.

  4. Na caixa de diálogo Abrir pasta , selecione Nova pasta.

  5. Nomeie a nova pasta Debug101 e selecione Selecionar pasta.

  6. No menu Terminal , selecione Novo Terminal.

    Um comando .NET CLI pode ser usado para criar um novo aplicativo de console.

  7. No prompt de comando do painel TERMINAL, digite o seguinte comando:

    dotnet new console
    
  8. Feche 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.

  1. 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.

  2. No menu Exibir, selecione Paleta de comandos.

  3. No prompt de comando, digite .net: g e selecione .NET: Gerar ativos para compilação e depuração.

  4. Observe a nova .vscode pasta que foi adicionada à pasta do projeto.

    Captura de ecrã a mostrar a pasta .vscode no Explorador.

    A .vscode pasta contém arquivos que são usados para configurar o ambiente de depuração.

  5. Expanda a .vscode pasta e, em seguida, selecione o arquivo launch.json .

  6. 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.

  7. Observe que o atributo prelaunchTask especifica uma tarefa de compilação .

  8. .vscode Na pasta, selecione tasks.json.

  9. Observe que o arquivo tasks.json contém a tarefa de compilação para seu projeto de código.

  10. 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.

  1. Abra o arquivo Program.cs .

  2. 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.";
    }
    
  3. No menu Arquivo , selecione Salvar.

  4. Abra o menu Executar .

    Observe que o menu Executar fornece opções para executar seu código com ou sem depuração.

  5. No menu Executar , selecione Executar sem depuração

  6. 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.

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

  1. No menu Executar , selecione Iniciar Depuração

  2. 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.

  3. 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.

  4. 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.

  1. Mude para a vista EXECUTAR E DEPURAR.

    Captura de ecrã mostrando a opção Executar na vista Executar e Depurar.

  2. 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.

  3. 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 .

  4. Na barra de ferramentas Depurar, selecione Parar.

Examine a saída do seu aplicativo

  1. Antes de fechar o painel DEBUG CONSOLE, reserve um minuto para revisar a saída que seu código produziu.

  2. 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.