Debugging con PDB
El
proceso de ejecutar, sentencia a sentencia un programa para poder
localizar posibles fallos se denomina debugging (eliminar errores) .
Esta forma de trabajar a veces es conveniente en nuestro programas para
encontrar código que no se ejecuta correctamente.
En Python tenemos un módulo, pdb, usado para tal fin. Por problemas de incompatibilidad con Python 2.7 en Ubuntu es mejor usar el módulo alternativo Pdb++ (que cargará también pdb). Antes de seguir damos la receta para comprobar si está instalado y, si no, hacerlo.
- Abrir un terminal y acceder como root.
- Escribir pip freeze
- Si se lanza un error es que hay que instalar una extensión para python: apt-get install python-pip
- Una vez instalado, comprobar en la lista si está el módulo pdbpp
- Si no lo está, instalarla con pip install pdbpp
Bien, suponiendo que esté instalado, ya
podemos probar el módulo. Imagina el siguiente programa, que suma
números. Al programa, se le han añadido el módulo pdb y la sentencia pdb.set_trace() que "para" el programa y muestra la línea que se está ejecutando en ese momento.
# -*- coding:utf-8 -*- import pdb pdb.set_trace() for i in range(10): print i + (i * 2)
Se utiliza siempre pdb.set_trace() en el punto del programa donde se quiere testear su funcionamiento.
Las órdenes más comunes para avanzar son:
- n (next) ejecuta el código mostrado y salta a la siguiente línea de tu archivo.
- s (step) te mostrará paso a paso el camino recorrido hasta poder ejecutar la siguiente línea de tu archivo
- c (continue) ejecuta el archivo hasta encontrar un punto donde se termina.
- q (quit) abandonar el debugger
- Para más usos de pdb , acceder a la documentación (interesantes el debugging de programas desde la línea de comandos).
- Documentación del módulo cargado pdbpp que sustituye al antiguo pdb con métodos y funcionalidad ampliada.
No hay comentarios:
Publicar un comentario