import sys def tracefunc(*args): print 'in tracefunc', repr(args) return tracefunc def bar(): print 'bar' def foo(): sys.settrace(tracefunc) print 'foo' bar() if '--reset-tracing' in sys.argv: sys.settrace(None) try: import stackless except ImportError: stackless = None if stackless: stackless.tasklet(foo)() stackless.schedule() else: foo()