Introducció

El depurador pdb (Python Debugger) és una eina poderosa que permet als desenvolupadors inspeccionar i controlar l'execució del codi Python en temps real. Amb pdb, pots fer un seguiment de l'execució del programa, establir punts de ruptura, inspeccionar variables i molt més. Aquest mòdul t'ensenyarà com utilitzar pdb per depurar els teus programes Python de manera eficient.

Continguts

Introducció a pdb

pdb és el depurador integrat de Python que permet als desenvolupadors:

  • Pausar l'execució del programa en punts específics.
  • Examinar l'estat del programa (variables, pila de crides, etc.).
  • Executar línia per línia per entendre el flux del programa.
  • Modificar variables en temps real per provar diferents escenaris.

Iniciar pdb

Hi ha diverses maneres d'iniciar pdb en un programa Python:

  1. Iniciar pdb des de la línia de comandes

Pots iniciar pdb executant el teu script amb l'opció -m pdb:

python -m pdb el_meu_script.py

  1. Iniciar pdb des del codi

També pots inserir una crida a pdb.set_trace() directament en el teu codi:

import pdb

def funcio():
    x = 10
    pdb.set_trace()  # Pausa l'execució aquí
    y = 20
    z = x + y
    print(z)

funcio()

Quan el programa arribi a pdb.set_trace(), entrarà en el mode de depuració.

Comandes bàsiques de pdb

A continuació es mostren algunes de les comandes més útils de pdb:

Comanda Descripció
l o list Mostra el codi al voltant de la línia actual.
n o next Executa la següent línia de codi.
s o step Entra en la següent funció.
c o continue Continua l'execució fins al següent punt de ruptura.
q o quit Surt del depurador.
p o print Imprimeix el valor d'una variable.
h o help Mostra ajuda sobre les comandes disponibles.

Establir punts de ruptura

Els punts de ruptura permeten pausar l'execució del programa en línies específiques. Pots establir punts de ruptura de diverses maneres:

  1. Des de la línia de comandes de pdb

(pdb) break nom_del_fitxer.py:linia

  1. Des del codi

Utilitza pdb.set_trace() com hem vist anteriorment.

Exemple:

import pdb

def suma(a, b):
    return a + b

def resta(a, b):
    return a - b

pdb.set_trace()  # Pausa aquí
x = suma(10, 5)
y = resta(10, 5)
print(x, y)

Inspeccionar variables

Pots utilitzar la comanda p per imprimir el valor de les variables:

(pdb) p x
10
(pdb) p y
5

També pots modificar el valor de les variables en temps real:

(pdb) x = 20
(pdb) p x
20

Exercicis pràctics

Exercici 1: Depuració bàsica

  1. Crea un script Python amb el següent codi:
def multiplicacio(a, b):
    return a * b

def divisio(a, b):
    return a / b

x = multiplicacio(10, 5)
y = divisio(10, 0)  # Això generarà una excepció
print(x, y)
  1. Utilitza pdb per depurar l'error de divisió per zero.

Solució:

  1. Inicia pdb des de la línia de comandes:
python -m pdb el_meu_script.py
  1. Quan el programa es pausi, utilitza les comandes n i p per inspeccionar les variables i trobar l'error.

Exercici 2: Establir punts de ruptura

  1. Modifica el codi anterior per incloure un punt de ruptura abans de la divisió.
import pdb

def multiplicacio(a, b):
    return a * b

def divisio(a, b):
    return a / b

x = multiplicacio(10, 5)
pdb.set_trace()  # Pausa aquí
y = divisio(10, 0)  # Això generarà una excepció
print(x, y)
  1. Executa el codi i utilitza pdb per depurar l'error.

Conclusió

El depurador pdb és una eina essencial per a qualsevol desenvolupador Python. Amb pdb, pots inspeccionar i controlar l'execució del teu codi en temps real, la qual cosa facilita la identificació i correcció d'errors. Practica utilitzant pdb en els teus projectes per millorar les teves habilitats de depuració i escriure codi més robust i fiable.

Curs de Programació en Python

Mòdul 1: Introducció a Python

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats