Salome HOME
CCAR: mise a jour proc distrib
[tools/eficas.git] / Misc / Trace.py
1 """
2     Ce module sert à tracer les appels aux methodes pendant
3     l'exécution.
4     Mode d'emploi :
5     Au début de la zone à tracer faire : Trace.begin_trace()
6     à la fin de la zone faire : Trace.end_trace()
7
8 """
9 import sys
10
11 def begin_trace():
12      sys.settrace(trace_dispatch)
13
14 def end_trace():
15      sys.settrace(None)
16
17 def dispatch_call(frame, arg):
18      """ Cette fonction est appelée par trace_dispatch
19          pour tracer les appels à des fonctions ou méthodes
20      """
21      name = frame.f_code.co_name
22      if not name: name = '???'
23      print '+++ call', name, arg
24
25 def trace_dispatch(frame,event,arg):
26      """ Cette fonction sert à tracer tous les appels
27          à des fonctions ou à des méthodes.
28      """
29      if event == 'call':
30         return dispatch_call(frame, arg)
31      return trace_dispatch
32