[Python] trace

Manlio Perillo manlio_perillo a libero.it
Mer 4 Apr 2007 15:52:08 CEST


Manlio Perillo ha scritto:
> 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__']
> 

Al posto di usare __file__, puoi usare:
code.co_filename

Se il modulo appartiene alla libreria standard non viene mostrato il 
path assoluto ma solo il nome del file (non mi sembra sia una cosa 
documentata, comunque).

Infine, __file__ non dovrebbe essere definito per moduli linkati 
staticamente all'interprete (ma su piattaforme usuali non credo sia mai 
il caso).




Saluti  Manlio Perillo


Maggiori informazioni sulla lista Python