/trunk/tracedebug.py
Python | 42 lines | 35 code | 7 blank | 0 comment | 10 complexity | 10118f77f8d67b76bacc7285ae6ad55a MD5 | raw file
- import sys, traceback
- import test1
-
- _END = False
-
- COL_DEF = '%15s %10s:%4d %3d %s'
- SKIP_FILES = set(['traceback.py', 'ntpath.py', 'linecache.py'])
-
- FN = lambda x: x if not '\\' in x else x.rsplit('\\',1)[1]
-
- def tracer(frame, event, arg):
- global _END
- try:
- if _END:
- return
- _show = {}
- fn = FN(frame.f_code.co_filename)
- if fn in SKIP_FILES:
- return
-
- for k in frame.f_locals.keys():
- if k.startswith('SL'):
- _show[k] = frame.f_locals[k]
- print COL_DEF%(event, fn, frame.f_lineno,
- frame.f_lasti, repr(_show))
-
- if event=='return' and (fn=='test1.py'):
- print 'return none..'
- _END = True
- return
- return tracer
- except:
- if traceback:
- traceback.print_exc()
- try:
- print COL_DEF.replace('d','s') % ('event', 'fname','line', 'i', 'sleepylocals')
- sys.settrace(tracer)
-
- test1.for_exception()
- except:
- print traceback
- traceback.print_exc()