[Python] Uso di PDB.

Gabriel Battaglia (Kriyaban) iz4apu a libero.it
Gio 18 Apr 2013 09:48:12 CEST


Buongiorno.

Questa mattina cerco di fare amicizia con lo strumento in oggetto. Ecco come sta procedendo il mio approccio.

Da, http://docs.python.it/html/lib/module-pdb.html leggo:
"
Il prompt del debugger è "(Pdb) ". L'utilizzo tipico di questo modulo per eseguire un programma sotto il controllo del debugger è:


>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
> <string>(0)?()
(Pdb) continue
> <string>(1)?()
(Pdb) continue
NameError: 'spam'
> <string>(1)?()
(Pdb)
"Apro dunque l'interprete:>>>Importo PDB:>>> import pdb>>>Importo il mio modulo:>>> import batnavIl modulo parte, lo uso finchè non 
lo porto ad un crash"Traceback (most recent call last):File "<stdin>", line 1, in <module>File "batnav.py", line 350, in 
<module>AzioniColpo()File "batnav.py", line 275, in AzioniColpoAffonda()File "batnav.py", line 41, in Affondadel 
Navi[Navi.index(LN)]ValueError: 1 is not in list>>> "A questo punto... Penso di aver capito di dover invocare la funzione pm del 
modulo pdb, è giusto?>>> pdb.pm()"> c:\python27\gb\batnav.py(41)Affonda()-> del Navi[Navi.index(LN)](Pdb) "A questo punto vorrei 
vedere il valore che ha causato l'out of index. In questo caso è stato riportato dal Traceback e so già che è 1, ma giusto per 
imparare.>>> LN(Pdb) Perchè? Non dovrebbe rispondere 1?Provo pp LNNone(Pdb)Uhm, sono un po confuso, ma LN non era la causa del 
crash?Ok, come faccio invece, se volessi testare il funzionamento di batnav.py sin dalla sua prima istruzione, non post_mortem. Come 
faccio a caricarlo nell'interprete senza che venga eseguito in automatico?Consapevole dell'ingenuità di queste domande, resto in 
attesa di qualche spunto...Come sempre grazie per la vostra gentilezza e pazienza.G. 



Maggiori informazioni sulla lista Python