[Python] Uso di PDB.

Gabriel Battaglia (Kriyaban) iz4apu a libero.it
Gio 18 Apr 2013 10:16:08 CEST


From: "Marco De Paoli" <depaolim a gmail.com>
Ciao Gabriel,
si è persa tutta la formattazione della tua sessione su pdb, in particolare
si sono persi tutti gli a-capo

GB: Auch... Eppure mentre editavo la mail, tutti gli a capo c'erano e la formattazione era corretta... Perchè quando poi viene 
inviata, succede questo casino?

In primis, grazie per il suggerimento del set_trace() nel codice, lo proverò, ma vorrei poterne seguire l'esecuzione proprio 
dall'inizio. Come si inserisce un break point?

Ora provo a rimandare la mia precedente mail, camiando un'opzione d'invio nel mailer, vediamo se questa volta riesco a mantenere la 
formattazione originale.

***
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 batnav

Il 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 AzioniColpo
Affonda()
File "batnav.py", line 41, in Affonda
  del 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.

(Pdb) LN
(Pdb)

Perchè? Non dovrebbe rispondere 1?

Provo pp:

(Pdb) pp LN
None
(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.
*** 
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130418/57b557d3/attachment-0001.html>


Maggiori informazioni sulla lista Python