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.

  1. 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.

  1. 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:

python -m pdb mi_script.py

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()

  1. 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

  1. 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

  1. Ejecuta el script y usa pdb para inspeccionar las variables y la ejecución.
  2. Verifica que los valores de base y altura sean correctos.
  3. 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.0

En 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

Módulo 2: Estructuras de Control

Módulo 3: Funciones y Módulos

Módulo 4: Estructuras de Datos

Módulo 5: Programación Orientada a Objetos

Módulo 6: Manejo de Archivos

Módulo 7: Manejo de Errores y Excepciones

Módulo 8: Temas Avanzados

Módulo 9: Pruebas y Depuración

Módulo 10: Desarrollo Web con Python

Módulo 11: Ciencia de Datos con Python

Módulo 12: Proyecto Final

© Copyright 2024. Todos los derechos reservados