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.