[Python] trace
Manlio Perillo
manlio_perillo a libero.it
Mer 4 Apr 2007 15:00:19 CEST
giuseppe massimo bertani ha scritto:
> Salve a tutti,
>
> Sto sviluppando una applicazione wxPython suddivisa su diversi files.
>
> Debugga oggi debugga domani, mi sono ritrovato i metodi delle classi pieni di "print"
> solo per vedere se tali metodi vengono richiamati e con che ordine.
>
> Ho visto che esiste un modulo trace, per cui mi immagino sia possibile fare la stessa cosa
> eliminando la maggior parte di questi print. Vorrei pero' limitare il tracciamento alle sole classi e
> funzioni che appartengono al mio applicativo (che hanno un proprio namespace) evitando di tracciare tutte
> le chiamate verso altri moduli, altrimenti non ci capisco piu' niente.
>
Un pò di codice scritto al volo e non testato a dovere (non avevo mai
usato trace prima).
Ho usato Twisted perchè vengono chiamate moltissime funzioni.
import sys
from twisted.internet import reactor
localPath = __file__
def trace(frame, event, arg):
module = frame.f_globals['__name__']
path = frame.f_globals['__file__']
if path in localPath:
code = frame.f_code
print frame.f_lineno, code.co_name
print module, path
def foo():
print 'foo'
reactor.stop()
sys.settrace(trace)
reactor.callLater(1, foo)
reactor.run()
Saluti Manlio Perillo
Maggiori informazioni sulla lista
Python