0Pricing
Python Academy · Lección

Depuración con pdb

Utilice el depurador integrado de Python para recorrer el código de forma interactiva.

Depuración con pdb es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

¿Qué es pdb?

pdb es el depurador interactivo integrado de Python. Permite pausar la ejecución, inspeccionar variables y recorrer el código línea por línea.

import pdb

def faulty(n):
    result = n * 2
    pdb.set_trace()   # execution pauses here
    return result + 1

faulty(5)

breakpoint() — Python 3.7+

breakpoint() es una forma abreviada integrada de import pdb; pdb.set_trace(). Respeta la variable de entorno PYTHONBREAKPOINT.

def process(data):
    for item in data:
        if item < 0:
            breakpoint()   # drop into pdb here
        print(item)

process([1, -2, 3])

Comandos principales de pdb

Comandos esenciales: n (siguiente línea), s (entrar), c (continuar), q (salir), p expr (imprimir), l (listar el código fuente).

# 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

Inspeccionar variables

Use p para imprimir una expresión, pp para imprimirla con formato legible y locals() para ver todas las variables locales.

# (Pdb) p data
# [1, -2, 3]
# (Pdb) pp {"key": "value", "num": 42}
# {'key': 'value',
#  'num': 42}
# (Pdb) p locals()

Puntos de interrupción condicionales

Establezca puntos de interrupción condicionales para pausar solo cuando se cumpla una condición y evitar avanzar paso a paso repetidamente.

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

Depuración post mortem

Inspeccione el estado justo después de una excepción no controlada mediante pdb.post_mortem() o ejecute su script con 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

Inspección de variables con w y where

w (where) muestra la traza actual de la pila de llamadas para que sepa cómo ha llegado al marco actual.

# (Pdb) w
# /app/main.py(10)main()
# -> process([1,-2,3])
# /app/main.py(5)process()
# -> breakpoint()

Desplazamiento entre marcos

u (up) y d (down) permiten desplazarse entre los marcos de la pila de llamadas para inspeccionar las variables de las funciones que realizan la llamada.

# (Pdb) u   — move to calling frame
# (Pdb) d   — move back down
# (Pdb) p data   — inspect variable in that frame

ipdb — Depurador mejorado

ipdb amplía pdb con funciones de IPython: autocompletado con el tabulador, resaltado de sintaxis y comandos mágicos.

# pip install ipdb
import ipdb

def calc(x):
    ipdb.set_trace()
    return x ** 2

calc(7)

pudb — Depurador visual de terminal

pudb proporciona un depurador TUI a pantalla completa en la terminal, con paneles de código, variables y pila.

# pip install pudb
# python -m pudb my_script.py

import pudb

def run():
    pudb.set_trace()
    data = [1, 2, 3]
    return sum(data)

Desactivación de puntos de interrupción en CI

Establezca PYTHONBREAKPOINT=0 para que todas las llamadas a breakpoint() no hagan nada en CI o producción.

# In CI pipeline:
# export PYTHONBREAKPOINT=0
# python my_script.py
# breakpoint() is silently skipped

Comprobación rápida

¿Qué comando de pdb continúa la ejecución hasta el siguiente punto de interrupción?

Resumen

Use breakpoint() para pausar la ejecución y entrar en pdb. Comandos principales: n, s, c, p, q. Para disfrutar de una experiencia más completa, pruebe ipdb o pudb. Desactive la función con PYTHONBREAKPOINT=0 en CI.

Preguntas frecuentes

¿La lección «Depuración con pdb» es gratis?

Sí — el texto completo de «Depuración con pdb» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Depuración con pdb»?

Utilice el depurador integrado de Python para recorrer el código de forma interactiva. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Depuración con pdb»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conceptos básicos del módulo logging
  2. Handlers, formatters y filtros
  3. Registro estructurado
  4. Depuración con pdb
← Volver a Python Academy