0Pricing
Python Academy · Aula

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          — quit

Inspecionando 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 < 0

Depuraçã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.py

Observando 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 frame

ipdb — 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 skipped

Verificaçã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

  1. Fundamentos do módulo logging
  2. Manipuladores, formatadores e filtros
  3. Registro estruturado
  4. Depuração com pdb
← Voltar para Python Academy