9.1 Iniciando o debugger
Vamos estudar o processo de debugging com base no PyCharm, o que é lógico e legal. Agora você vai ver o porquê.
No PyCharm, você pode rodar seu programa em dois modos:
Modos de execução do programa | Ícone na barra | Atalhos |
---|---|---|
Execução normal | Shift+F10 | |
Execução no modo de depuração | Shift+F9 |
Com o modo normal você já está familiarizado: o programa é executado, roda e termina. Mas o modo de depuração traz várias surpresas para você.
Modo de depuração
O modo de depuração permite que você execute passo a passo todo o seu programa. Ou, mais precisamente, linha por linha. Você pode observar os valores das variáveis em cada passo do programa (após a execução de cada linha de código). E até mesmo alterar os valores!
Para dominar minimamente a arte da depuração, você precisa aprender três coisas:
- Breakpoints
- Execução passo a passo
- Visualização de valores de variáveis
9.2 Breakpoints (Break Points)
A IDE permite que você adicione no código marcadores especiais — breakpoints (break point)
. Toda vez que o programa, rodando no modo de depuração, chegar na linha marcada como break point
, ele vai pausar.
Para adicionar um break point
em uma linha específica, basta
clicar no PyCharm à esquerda desta linha. Exemplo:
Como resultado, a linha será marcada com um breakpoint (break point)
, e o PyCharm destacará toda a linha em vermelho:
Um novo clique do mouse na barra à esquerda do código removerá o break point
definido.
Você também pode definir um break point
na linha atual
usando uma combinação de teclas — Ctrl+F8. Um novo
pressionamento de Ctrl+F8 na linha que já possui
um break point
o removerá.
9.3 Executando o programa no modo de depuração (debug)
Se o seu programa tiver pelo menos um breakpoint, você pode rodar o programa no modo de depuração (Shift+F9 ou “ícone do inseto”).
Após iniciar no modo de depuração, o programa executará normalmente. Mas assim
que chegar na execução da linha de código marcada com um break point
,
ele pausará. Exemplo:
Na parte superior da captura de tela, você vê o código do programa com dois breakpoints.
O programa está pausado na linha 2 — marcada com uma linha azul
. A linha 2
ainda não foi executada: ainda não foi exibido nada no console.
Na parte inferior da tela, você vê os painéis do modo de depuração: painel Thread &
variables
, painel Console
(saída), e também um conjunto de botões para o modo
de depuração.
Você pode retomar a execução do seu programa (continuar a execução), se
pressionar o botão Resume Program
no painel inferior esquerdo (ou
pressionar a tecla F9).
Se você pressionar este botão (ou F9), o programa continuará executando até encontrar o próximo breakpoint ou terminar. Veja o que veremos após pressionar este botão:
O programa parou no segundo breakpoint, e no console foram exibidas as palavras
"Hello"
e "and"
– sinal de que das três linhas de saída duas foram
executadas.
9.4 Execução passo a passo
Se o seu programa estiver rodando no modo de depuração, você também pode executá-lo
passo a passo: um passo — uma linha. Para execução
passo a passo, existem duas teclas de atalho: F7 e F8: cada uma delas executa
a linha de código atual. Mas primeiro você precisa pausar
seu programa com um break point
.
Se você deseja executar seu programa linha por linha, deve colocar um break point
no início — na primeira linha com código — e executá-lo no modo de depuração.
Quando o programa parar, você poderá iniciar a execução linha por linha. Uma tecla F8 pressionada — uma linha.
É assim que nosso programa ficará após pausar e pressionar a tecla F8 uma vez:
A primeira linha — print("Hello")
— já foi executada, e a linha atual é a segunda.
Você também pode ver na parte inferior da captura de tela que a palavra "Hello"
já foi exibida.
9.5 Execução passo a passo com entrada nas funções
Se o seu programa tiver funções próprias e você quiser que, no modo de depuração, seu programa não apenas seja executado passo a passo, mas também entre nas suas funções, para “entrar na função” você deve pressionar não a tecla F8, mas a tecla F7.
Suponha que você esteja executando o programa passo a passo e agora parou na quinta linha. Se você pressionar a tecla F8, o PyCharm simplesmente executará a quinta linha e passará para a sexta.
Mas se você pressionar F7, o PyCharm executará passo a passo a função hello()
:
É bem simples. Se não for muito importante para você o que acontece dentro do método, você pressiona F8, se for importante — F7, e executa todo o código passo a passo.
GO TO FULL VERSION