<br><br><div class="gmail_quote">Il giorno 18 aprile 2013 09:48, Gabriel Battaglia (Kriyaban) <span dir="ltr"><<a href="mailto:iz4apu@libero.it" target="_blank">iz4apu@libero.it</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

"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)]<u></u>ValueError: 1 is not in list>>> "A questo punto... Penso di aver capito di dover invocare la funzione pm del modulo pdb, è giusto?>>> <a href="http://pdb.pm" target="_blank">pdb.pm</a>()"> c:\python27\gb\batnav.py(41)<u></u>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. <br>
</blockquote><div><br>Ciao Gabriel,<br>si è persa tutta la formattazione della tua sessione su pdb, in particolare si sono persi tutti gli a-capo <br>per cui faccio un po' fatica a capire il problema<br><br>ti segnalo comunque un altro approccio che forse può esserti utile, basta setare un break-point inserendo nel programma l'istruzione seguente:<br>
<br>import pdb; pdb.set_trace()<br><br>in questo modo potrai lanciare normalmente il programma e poi si fermerà da solo al break-point aprendoti automaticamente una sessione di debug<br><br>insomma, è un modo per evitare di andare passo passo a partire dall'inizio del programma<br>
<br>Marco<br></div></div><br>