[Python] Uso di PDB.

Alessandro Dentella sandro a e-den.it
Gio 18 Apr 2013 10:38:44 CEST


> Ok, come faccio invece, se volessi testare il funzionamento di batnav.py sin
> dalla sua prima istruzione, non post_mortem. Come

Ci sono vari modi, il mio suggerimento è si usare ipython ed in particolare
il comando 'run' con opzione -d (leggi la documentazione in ipython con
%magic).

Come indagine post-mortem, ipython ti mette a disposizione il comando
'debug' che ti catapulta nel punto esatto in cui è stato sollevato l'errore
non gestito.


Quello che segue è l'esempio per eseguire passo passo il moduo mymod::


sandro a bluff:/tmp$ cat mymod.py
a = [1,2,3]   #<<<<<<<  pessima scelta di nome variabile, anche solo per test
              # infatti 'a' è anche un comando pdb...

def print_a():
    print a, len(a)

print_a()


sandro a bluff:/tmp$ ipython
In [1]: run -d mymod
Breakpoint 1 at /tmp/mymod.py:1
NOTE: Enter 'c' at the ipdb>  prompt to start your script.
> <string>(1)<module>()

ipdb> n
> /tmp/mymod.py(1)<module>()
1---> 1 a = [1,2,3]
      2 
      3 def print_a():

ipdb> n
> /tmp/mymod.py(3)<module>()
      2 
----> 3 def print_a():
      4     print a, len(a)

ipdb> n
> /tmp/mymod.py(6)<module>()
      5 
----> 6 print_a()
      7 

ipdb> s
--Call--
> /tmp/mymod.py(3)print_a()
      2 
----> 3 def print_a():
      4     print a, len(a)

ipdb> n
> /tmp/mymod.py(4)print_a()
      3 def print_a():
----> 4     print a, len(a)

-- 
Sandro Dentella  *:-)
http://www.reteisi.org             Soluzioni libere per le scuole
http://sqlkit.argolinux.org        SQLkit home page - PyGTK/python/sqlalchemy





Maggiori informazioni sulla lista Python