Partilhar via


Tutorial: Executar código no depurador do Visual Studio

Este artigo apresenta a Etapa 4 da série de tutoriais Trabalhar com Python no Visual Studio.

O Visual Studio fornece capacidades para gerir projetos, uma experiência avançada de edição, a Janela Interativa , e uma depuração completa para código Python. Na Etapa 4 desta série de tutoriais, utiliza o Depurador para executar o seu código passo a passo, incluindo cada iteração de um loop. No Depurador, você pode pausar seu programa sempre que certas condições forem verdadeiras. A qualquer momento quando o programa é pausado, você pode examinar todo o estado do programa e alterar o valor das variáveis. Tais ações são essenciais para rastrear bugs do programa e também fornecem ajudas úteis para seguir o fluxo exato do programa.

Na etapa 4 do tutorial, você aprenderá a:

  • Execute código Python no do Depurador no Visual Studio
  • Definir pontos de interrupção e condições
  • Examinar o estado do programa e alterar variáveis
  • Explore Depurador janelas e ações

Pré-requisitos

Preparar o arquivo Python

Para se preparar para o exercício de depuração, siga estas etapas para atualizar seu arquivo de projeto Python para incluir código mais robusto:

  1. Abra seu arquivo de projeto Python (.py) no editor.

  2. Substitua o código no arquivo com o código a seguir. Esta versão do código expande a função make_dot_string para que você possa examinar suas etapas discretas no depurador. Ele move o for loop para uma main função e, em seguida, executa-o explicitamente chamando a main função:

    from math import cos, radians
    
    # Create a string with spaces proportional to a cosine of x in degrees
    def make_dot_string(x):
        rad = radians(x)                             # cos works with radians
        numspaces = int(20 * cos(rad) + 20)          # Scale to 0-40 spaces
        st = ' ' * numspaces + 'o'                   # Place 'o' after the spaces
        return st
    
    def main():
        for i in range(0, 1800, 12):
            s = make_dot_string(i)
            print(s)
    
    main()
    

Iniciar depuração

Agora você está pronto para começar a verificar seu código Python atualizado no Depurador.

  1. Confirme se o código funciona corretamente selecionando Depurar>Iniciar Depuração na barra de ferramentas ou use o F5 atalho de teclado. Esses comandos executam o código no Depurador.

    O do Depurador de não deteta nenhum problema, portanto, o programa é executado com êxito. Uma janela de saída é aberta e você vê algumas iterações do padrão de onda cosseno. Selecione qualquer tecla para fechar a janela de saída.

    Dica

    Nas versões anteriores do Visual Studio, pode fechar automaticamente a janela de saída quando o programa termina. Selecione Ferramentas>Opções, expanda o nó de Python>Depuração e desmarque a opção Esperar por entrada quando o processo termina normalmente.

  2. Defina um ponto de interrupção na instrução de loop for usando um dos seguintes métodos:

    • Selecione na margem esquerda ao lado da linha de código.
    • Clique com o botão direito na linha de código e selecione Ponto de interrupção>Inserir ponto de interrupção.
    • Coloque o cursor de inserção na linha de código e selecione Depurar>Alternar ponto de interrupção (ou use o F9 atalho de teclado).

    Os pontos de interrupção interrompem a execução do código em um ponto marcado para que você possa inspecionar o estado do programa. Um ponto vermelho aparece em cada linha que tem um ponto de interrupção definido.

    Captura de tela que mostra como definir um ponto de interrupção no Depurador no Visual Studio.

  3. Inicie o Depurador novamente (F5). O código em execução para o programa para na linha com o ponto de interrupção definido. Agora você pode inspecionar a pilha de chamadas e examinar variáveis para esse estado do código do programa em execução.

    Visual Studio fornece muitas maneiras de observar o código do programa e dados de execução, incluindo as seguintes janelas:

    • A pilha de chamadas mostra o histórico de chamadas de função e método realizadas pelo código do programa.
    • As variáveis definidas que estão no escopo aparecem na janela Autos.
    • A vista Locals mostra todas as variáveis que o Visual Studio encontra no escopo atual (incluindo funções), mesmo antes de serem definidas no código.

    Para ver a lista completa de janelas e ações disponíveis, selecione Debug>Windows.

    Você pode abrir as janelas do Depurador para ver o estado do seu programa ao encontrar um ponto de interrupção.

    Captura de tela das janelas do Depurador que mostram o estado do programa quando o Visual Studio para em um ponto de interrupção definido.

Usar ações do Depurador

Quando o Visual Studio interrompe a execução de código num ponto de paragem, há vários comandos que pode usar para percorrer o seu código ou executar blocos de código antes de parar novamente. Os comandos estão disponíveis em alguns locais no Visual Studio, incluindo a barra de ferramentas Depurador, o menu Depurar, o menu de contexto do editor de código acionado com o botão direito do rato e por meio de atalhos de teclado.

A barra de ferramentas Depurador na parte superior da janela do Visual Studio fornece acesso rápido aos comandos de depuração mais comuns.

Captura de ecrã da barra de ferramentas do Depurador no Visual Studio.

A tabela a seguir resume esses comandos como eles aparecem da esquerda para a direita na barra de ferramentas:

Ação Atalho Descrição
Continuar F5 Execute o código até atingir o próximo ponto de interrupção ou até a conclusão do programa.
Break Tudo Ctrl+Alt+Interr. Interrompa a execução de um programa que está em execução há muito tempo.
Parar de depurar Shift+F5 Pare o programa no ponto atual e saia do Depurador.
Reiniciar Ctrl+Shift+F5 Pare o programa no ponto atual e reinicie a execução do programa desde o início no Depurador.
Mostrar próxima declaração Alt+Num+\ Retorne para a próxima instrução a ser executada no código. Este comando ajuda você a localizar o local em seu código onde o do Depurador de está parado.
Entre em F11 Execute a próxima instrução e pare. Se a próxima instrução for uma chamada para uma função, o depurador de entra na função e para na primeira linha.
passo sobre F10 Execute a próxima instrução, incluindo fazer uma chamada para uma função (executando todo o seu código) e aplicar qualquer valor de retorno. Este comando permite-lhe ignorar facilmente funções que não precisa de depurar.
Saia Shift+F11 Execute o código até o final da função atual, em seguida, vá para a instrução de chamada e pause. Este comando é útil quando você não precisa depurar o restante da função atual.

Siga estas etapas para trabalhar com Depurador ações em seu código Python:

  1. Percorra a instrução de loop for usando a ação Step Over.

    de revisão faz com que o do Depurador de execute a linha de código atual, incluindo qualquer função chamada, e pause imediatamente novamente. Depois de avançar, observe que a variável i agora está definida nas janelas Locais e Autos .

  2. Step Over a próxima linha de código, que chama a função make_dot_string.

    Nesse caso, Step Over faz com que o Depurador execute completamente a função make_dot_string e pare após o retorno da função. O do Depurador de não para dentro da função, a menos que exista um ponto de interrupção separado.

  3. Continue passando por cima do código mais algumas vezes e observe como os valores na janela Locals ou Autos mudam.

  4. Na janela Locais ou Autos, clique duas vezes na coluna Valor de uma variável para editar o valor. Neste exemplo, altere o valor da variável s para 'Hello, Python Application'. Certifique-se de colocar o valor entre aspas simples. Selecione Inserir ou qualquer área fora do valor para aplicar as alterações.

    Captura de tela que mostra como alterar o valor de uma variável na janela Locais durante a depuração no Visual Studio.

  5. Continue a percorrer o código usando Step Into até a chamada da função make_dot_string.

    Para uma função, Step Into faz com que o do Depurador de chame a função e também entre no código da função. Quando o processo de depuração está dentro de uma função, você pode examinar suas variáveis locais e percorrer seu código especificamente. Neste exemplo, a ação de entrar em move-se para a função make_dot_string.

  6. Continue com Step Into até ao retorno da função make_dot_string.

    Quando se chegar ao final do make_dot_string código da função, a próxima etapa faz com que o Depurador volte ao for loop com o novo valor de retorno na variável s.

    Ao entrar novamente na instrução print, observe que a ação Step Into na instrução print não entra nessa função. Esse comportamento ocorre porque a função print não está escrita em Python. É código nativo dentro do tempo de execução do Python.

  7. Continue usando Step Into até que você esteja novamente entrando na função make_dot_string e, em seguida, use Step out e observe que o do Depurador de retorna ao loop for.

    Com Step Out, o Depurador executa o restante da função e, em seguida, pausa automaticamente no código de chamada. Esta ação é útil depois de passar por alguma parte de uma função longa e você deseja terminar sua observação da função. Sair executa o restante do código ou até atingir um ponto de paragem explícito definido no código de chamada.

  8. Continue executando o programa até que o próximo ponto de interrupção seja atingido usando Continue (F5). Como você tem um ponto de interrupção definido no loop for, interrompe na próxima iteração.

    Você pode confirmar que o programa continua a ser executado observando o valor variável s na janela Locals.

Usar condições de ponto de interrupção

Percorrer centenas de iterações de um loop pode ser tedioso, portanto, o Visual Studio permite que você adicione uma condição a um ponto de interrupção. Quando se define uma condição do ponto de interrupção, o Depurador pausa o programa no ponto de interrupção somente quando a condição é satisfeita.

As etapas a seguir mostram como definir uma condição de ponto de interrupção na instrução de loop for para que o Depurador do pause somente quando o valor da variável i exceder 1600:

  1. Para definir a condição do ponto de interrupção, clique com o botão direito do rato no ponto de interrupção vermelho e selecione Condições ou utilize o atalho de teclado Alt+F9>C.

  2. Na caixa de diálogo Configurações do Ponto de Interrupção, configure as seguintes definições para criar a Condição:

    1. Defina o tipo de condição como Expressão Condicional.

    2. Defina a avaliação da condição para que seja verdadeiro.

    3. Insira i > 1600 como o valor da condição.

    4. Selecione Fechar.

    Captura de tela que mostra como definir um ponto de interrupção condicional no Depurador no Visual Studio.

  3. Selecione F5 para continuar a depuração e a execução do programa. Observe que o programa executa muitas iterações antes de atingir o ponto de interrupção condicional.

    Você pode confirmar se o Depurador pausa corretamente a execução do programa quando atinge o ponto de interrupção condicional. Quando a condição é satisfeita, a janela de Locais mostra o valor da variável i como 1608.

  4. Para executar o programa até a conclusão, você pode desativar o ponto de interrupção e continuar a execução do programa.

    1. Passe o cursor sobre o ponto vermelho e selecione Desativarou clique com o botão direito do mouse no ponto vermelho e selecione Desativar ponto de interrupção.

    2. Selecione Continue (ou pressione F5) para executar o programa.

    Quando o programa termina, o Visual Studio interrompe a sessão de depuração e retorna ao modo de edição.

    Você também pode excluir um ponto de interrupção. Selecione o ponto vermelho ou clique com o botão direito do mouse no ponto e selecione Excluir ponto de interrupção. Esta ação também exclui todas as condições definidas.

Dica

Em algumas situações, como uma falha ao iniciar o próprio interpretador Python, a janela de saída Python pode fechar imediatamente após o programa terminar sem pausar nem mostrar o aviso Prima qualquer tecla para continuar. Para forçar a pausa e o prompt, adicione o argumento -i ao campo Argumentos de Execução>do Interpretador na guia Depuração. Este argumento coloca o interpretador Python no modo interativo depois que o código é executado. O programa espera que você selecione Ctrl+Z+Enter para fechar a janela.

Próximo passo