Guia depuracion Python

Chema Cortés chemacortes en wanadoo.es
Dom Abr 21 15:14:19 CEST 2002


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola, Juan Ignacio Codoner:
En respuesta a tu mensaje del Mié 17 Abr 2002 21:10:

> alguien sabe de una guía para depuracion de python.

He buscado, pero no hay nada que se pudiera llamar "guía".

Estos días me he estado mirando los diversos métodos de depurado, y es todo 
un mundo. Depende de tu sistema operativo y de su entorno de desarrollo.

Por si sirve de algo, a continuación enumero algunas de las "maneras" de 
depurar código python:

- - Usando el pdb (python debugger) en modo línea de comandos: se invoca como 
módulo desde nuestro código. Donde queramos poner un "breakpoint" se pone 
"pdb.set_trace()", donde entraríamos al modo comando del pdb. También se 
puede invocar en "post-mortem", esto es, cuando se nos haya terminado la 
ejecución del programa a causa de un error. Para ello, tenemos que haber 
importado el módulo pdb antes de la ejecución del programa. La información 
del pdb la podemos encontrar en la documentación de python. Además del pdb, 
existe el bdb, que es una superclase que se utiliza de base para hacer 
debuggers particulares (pe: pydebug).

- - Usando el IDLE: es un entorno realizado en Tkinter que viene con toda 
instalación de python. Antes de lanzar la aplicación se debe activar el 
debugger gráfico. Tiene algunas limitaciones, pero es bastante cómodo de 
utilizar.

- - Usando emacs: con el python-mode del emacs se incluye el pdb-trace, con lo 
que podemos tener dividida la pantall en dos, en una el código fuente y en la 
otra el interface pdb. En el código fuente podemos ver señalado la línea de 
ejecución con una flecha '=>' gracias al pdb-trace.

- - Usando el pythonwin: es un IDE sólo para windows, pero tal vez sea el más 
cómodo para depurar un programa de python. Es similar a los depuradores 
gráficos para otros lenguajes.

- - Usando DDD: es un entorno gráfico para depuración que pertenece al proyecto 
GNU. En las últimas versiones incluye el 'pydebug', que nos permite utilizar 
el pdb dentro del entorno DDD. Como por defecto, ddd utiliza el debugger gdb, 
tenemos que invocarlo con la opción -pydb para poder depurar código python. 
La depuración se hace muy simple a través de una barra de botones.


Bueno, creo que no me dejo nada. No comento los IDEs comerciales o el 
boa-constructor porque no los conozco demasiado. El Komodo de ActiveState lo 
veo algo lento, y el boa-constructor algo inestable. Tampoco comento la 
depuración de módulos de python, donde intervienen los debuggers típicos de 
lenguajes compilados (eg: gdb).

Con la clase bdb espero que pronto veamos más y mejores debugger para python. 
De momento habrá que tirar con esto. Como veis, no es fácil hacer una guía 
útil con todo esto. ¿Me he dejado algo?


Saludos,
- -- 
Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 7.3
  ZARALINUX  http://www.zaralinux.org | "La ignorancia se apodera de quien
    PYTANDO  http://pytando.sf.net    |     se contenta con lo que sabe"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8wrsvHLTQrABk8H0RAg3VAJ9elkJKmBPW+ke/ehMUQrjKphMknACfadXD
A0KGfIqr1ttpys05HxMJ8ho=
=k55m
-----END PGP SIGNATURE-----


Más información sobre la lista de distribución Python-es