Sono state fatte alcune modifiche all'interprete:
sys.settrace(func) imposta la funzione di
tracciamento globale
Le funzioni di tracciamento possiedono tre argomenti: frame, event
e arg. frame è lo stack frame corrente.
event è una stringa: 'call', 'line',
'return', 'exception', 'c_call',
'c_return' o 'c_exception'. arg dipende dal tipo
di evento.
La funzione di tracciamento globale viene invocata (con event
impostato a 'call') ogni volta che viene inserito un nuovo
scope locale; dovrebbe restituire un riferimento alla funzione
locale di tracciamento da usare con quello scope o None se lo
scope non deve essere tracciato.
La funzione di tracciamento locale dovrebbe restituire un riferimento a se
stessa (o ad un'altra funzione per ulteriori tracciamenti in quello
scope) o None per interrompere il tracciamento nello scope.
Vengono accettati anche metodi di istanza (e sono molto utili!) come funzioni di tracciamento.
Gli eventi possiedono il seguente significato:
'call'None; il valore di restituito specifica la
funzione di tracciamento locale.
'line'None; il
valore restituito specifica la nuova funzione di tracciamento locale.
'return'
'exception'(eccezione, valore, traceback)); il valore
restituito specifica la nuova funzione di tracciamento locale.
'c_call'
'c_return'None.
'c_exception'None.
Notate che come un'eccezione si propaga nella catena delle
chiamate, allo stesso modo un evento 'exception' viene generato ad ogni
livello.
Per ulteriori informazioni su codice e oggetti frame, fate riferimento al Manuale di riferimento di Python.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.