El depurador pdb (Python Debugger) es una herramienta poderosa que permite a los desarrolladores inspeccionar y controlar la ejecución de programas Python. Con pdb, puedes establecer puntos de interrupción, inspeccionar variables, ejecutar código línea por línea y mucho más. En esta sección, aprenderemos cómo utilizar pdb para depurar programas Python de manera efectiva.
- Introducción a pdb
pdb es el depurador estándar de Python y se incluye en la biblioteca estándar. Proporciona una interfaz interactiva para depurar programas Python.
Características Clave de pdb:
- Puntos de interrupción: Detener la ejecución en una línea específica.
- Inspección de variables: Ver el valor de las variables en cualquier punto de la ejecución.
- Ejecución paso a paso: Ejecutar el código línea por línea.
- Evaluación de expresiones: Evaluar expresiones Python en el contexto actual.
- Iniciando pdb
Puedes iniciar pdb de varias maneras:
2.1. Desde la línea de comandos
Puedes ejecutar un script Python con pdb desde la línea de comandos usando la opción -m pdb:
2.2. Insertando pdb.set_trace()
Otra manera común de iniciar pdb es insertando pdb.set_trace() en el código donde deseas comenzar la depuración:
import pdb
def mi_funcion():
x = 10
y = 20
pdb.set_trace() # Inicia el depurador aquí
z = x + y
print(z)
mi_funcion()
- Comandos Básicos de pdb
Una vez que pdb está activo, puedes usar varios comandos para controlar la ejecución del programa:
| Comando | Descripción |
|---|---|
l o list |
Muestra el código fuente alrededor de la línea actual. |
n o next |
Ejecuta la siguiente línea de código. |
s o step |
Entra en la siguiente función. |
c o continue |
Continúa la ejecución hasta el siguiente punto de interrupción. |
b o break |
Establece un punto de interrupción en una línea específica. |
p o print |
Imprime el valor de una variable o expresión. |
q o quit |
Sale del depurador y termina el programa. |
Ejemplo de Uso de Comandos
import pdb
def suma(a, b):
return a + b
def main():
x = 5
y = 10
pdb.set_trace() # Inicia el depurador aquí
resultado = suma(x, y)
print(f"Resultado: {resultado}")
main()Cuando el depurador se activa, puedes usar los comandos mencionados para inspeccionar y controlar la ejecución:
> /ruta/a/tu/script.py(10)main()
-> resultado = suma(x, y)
(Pdb) l
5 def suma(a, b):
6 return a + b
7
8 def main():
9 x = 5
10 -> y = 10
11 pdb.set_trace() # Inicia el depurador aquí
12 resultado = suma(x, y)
13 print(f"Resultado: {resultado}")
14
15 main()
(Pdb) p x
5
(Pdb) n
> /ruta/a/tu/script.py(11)main()
-> pdb.set_trace() # Inicia el depurador aquí
(Pdb) n
> /ruta/a/tu/script.py(12)main()
-> resultado = suma(x, y)
(Pdb) s
--Call--
> /ruta/a/tu/script.py(5)suma()
-> def suma(a, b):
(Pdb) n
> /ruta/a/tu/script.py(6)suma()
-> return a + b
(Pdb) p a
5
(Pdb) p b
10
(Pdb) n
> /ruta/a/tu/script.py(12)main()
-> resultado = suma(x, y)
(Pdb) p resultado
15
(Pdb) c
Resultado: 15
- Ejercicio Práctico
Ejercicio
Dado el siguiente código, usa pdb para encontrar y corregir el error:
def calcular_area(base, altura):
area = base * altura / 2
return area
def main():
base = 10
altura = 5
pdb.set_trace() # Inicia el depurador aquí
area = calcular_area(base, altura)
print(f"El área del triángulo es: {area}")
main()Solución
- Ejecuta el script y usa
pdbpara inspeccionar las variables y la ejecución. - Verifica que los valores de
baseyalturasean correctos. - Asegúrate de que la fórmula para calcular el área del triángulo sea correcta.
> /ruta/a/tu/script.py(10)main()
-> area = calcular_area(base, altura)
(Pdb) p base
10
(Pdb) p altura
5
(Pdb) n
> /ruta/a/tu/script.py(11)main()
-> print(f"El área del triángulo es: {area}")
(Pdb) p area
25.0
(Pdb) c
El área del triángulo es: 25.0En este caso, el código es correcto y no hay errores. El área del triángulo se calcula correctamente como 25.0.
Conclusión
En esta sección, hemos aprendido cómo utilizar pdb para depurar programas Python. Hemos cubierto cómo iniciar pdb, los comandos básicos para controlar la ejecución y un ejercicio práctico para aplicar lo aprendido. La depuración es una habilidad esencial para cualquier programador, y pdb es una herramienta valiosa para ayudarte a encontrar y corregir errores en tu código.
Curso de Programación en Python
Módulo 1: Introducción a Python
- Introducción a Python
- Configuración del Entorno de Desarrollo
- Sintaxis de Python y Tipos de Datos Básicos
- Variables y Constantes
- Entrada y Salida Básica
Módulo 2: Estructuras de Control
- Sentencias Condicionales
- Bucles: for y while
- Herramientas de Control de Flujo
- Comprensiones de Listas
Módulo 3: Funciones y Módulos
- Definición de Funciones
- Argumentos de Función
- Funciones Lambda
- Módulos y Paquetes
- Visión General de la Biblioteca Estándar
Módulo 4: Estructuras de Datos
Módulo 5: Programación Orientada a Objetos
Módulo 6: Manejo de Archivos
- Lectura y Escritura de Archivos
- Trabajo con Archivos CSV
- Manejo de Datos JSON
- Operaciones de Archivos y Directorios
Módulo 7: Manejo de Errores y Excepciones
- Introducción a las Excepciones
- Manejo de Excepciones
- Lanzamiento de Excepciones
- Excepciones Personalizadas
Módulo 8: Temas Avanzados
- Decoradores
- Generadores
- Administradores de Contexto
- Concurrencia: Hilos y Procesos
- Asyncio para Programación Asíncrona
Módulo 9: Pruebas y Depuración
- Introducción a las Pruebas
- Pruebas Unitarias con unittest
- Desarrollo Guiado por Pruebas
- Técnicas de Depuración
- Uso de pdb para Depuración
Módulo 10: Desarrollo Web con Python
- Introducción al Desarrollo Web
- Fundamentos del Framework Flask
- Construcción de APIs REST con Flask
- Introducción a Django
- Construcción de Aplicaciones Web con Django
Módulo 11: Ciencia de Datos con Python
- Introducción a la Ciencia de Datos
- NumPy para Computación Numérica
- Pandas para Manipulación de Datos
- Matplotlib para Visualización de Datos
- Introducción al Aprendizaje Automático con scikit-learn
