Depuração com pdb
Use o depurador integrado do Python para percorrer o código interativamente.
Depuração com pdb é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
O que é pdb?
O pdb é o depurador interativo integrado do Python. Ele permite pausar a execução, inspecionar variáveis e percorrer o código linha a linha.
import pdb
def faulty(n):
result = n * 2
pdb.set_trace() # execution pauses here
return result + 1
faulty(5)breakpoint() — Python 3.7+
breakpoint() é uma forma abreviada integrada de import pdb; pdb.set_trace(). Ela respeita a variável de ambiente PYTHONBREAKPOINT.
def process(data):
for item in data:
if item < 0:
breakpoint() # drop into pdb here
print(item)
process([1, -2, 3])Comandos principais do pdb
Comandos essenciais: n (próxima linha), s (entrar), c (continuar), q (sair), p expr (imprimir), l (listar o código-fonte).
# Inside pdb prompt:
# (Pdb) n — execute next line
# (Pdb) s — step into function
# (Pdb) c — continue to next breakpoint
# (Pdb) p my_var — print value
# (Pdb) l — show source around current line
# (Pdb) q — quitInspecionando variáveis
Use p para imprimir uma expressão, pp para uma impressão formatada e locals() para ver todas as variáveis locais.
# (Pdb) p data
# [1, -2, 3]
# (Pdb) pp {"key": "value", "num": 42}
# {'key': 'value',
# 'num': 42}
# (Pdb) p locals()Pontos de interrupção condicionais
Defina pontos de interrupção condicionais para pausar somente quando uma condição for verdadeira, evitando a execução passo a passo repetida.
import pdb
def process(items):
for i, item in enumerate(items):
if item < 0: # manual condition
pdb.set_trace()
result = item * 2
# Or inside pdb: b filename.py:12, x < 0Depuração pós-morte
Inspecione o estado imediatamente após uma exceção não tratada usando pdb.post_mortem() ou execute seu script com python -m pdb script.py.
import pdb
try:
1 / 0
except ZeroDivisionError:
pdb.post_mortem() # inspect at the crash point
# Or from CLI:
# python -m pdb my_script.pyObservando variáveis com w e where
w (where) imprime o rastreamento atual da pilha de chamadas, para que você saiba como chegou ao quadro atual.
# (Pdb) w
# /app/main.py(10)main()
# -> process([1,-2,3])
# /app/main.py(5)process()
# -> breakpoint()Movendo-se entre quadros
u (up) e d (down) movem-se entre os quadros da pilha de chamadas, para que você possa inspecionar variáveis nas funções chamadoras.
# (Pdb) u — move to calling frame
# (Pdb) d — move back down
# (Pdb) p data — inspect variable in that frameipdb — Depurador aprimorado
ipdb envolve o pdb com recursos do IPython: conclusão por tabulação, realce de sintaxe e comandos mágicos.
# pip install ipdb
import ipdb
def calc(x):
ipdb.set_trace()
return x ** 2
calc(7)pudb — Depurador visual no terminal
pudb oferece um depurador TUI em tela cheia no terminal, com painéis de código, variáveis e pilha.
# pip install pudb
# python -m pudb my_script.py
import pudb
def run():
pudb.set_trace()
data = [1, 2, 3]
return sum(data)Desativando pontos de interrupção na integração contínua
Defina PYTHONBREAKPOINT=0 para transformar todas as chamadas a breakpoint() em operações sem efeito na integração contínua ou em produção.
# In CI pipeline:
# export PYTHONBREAKPOINT=0
# python my_script.py
# breakpoint() is silently skippedVerificação rápida
Qual comando do pdb continua a execução até o próximo ponto de interrupção?
Recapitulação
Use breakpoint() para pausar a execução e entrar no pdb. Comandos principais: n, s, c, p, q. Para experiências mais completas, experimente ipdb ou pudb. Desative com PYTHONBREAKPOINT=0 na integração contínua.
Perguntas Frequentes
A aula “Depuração com pdb” é grátis?
Sim — o texto completo de “Depuração com pdb” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “Depuração com pdb”?
Use o depurador integrado do Python para percorrer o código interativamente. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Depuração com pdb”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos do módulo logging
- Manipuladores, formatadores e filtros
- Registro estruturado
- Depuração com pdb