Gabriel Genellina <gagsl-...@yahoo.com.ar> added the comment: Yes, this is exactly the problem. The execution never goes beyond print ('here'); if you print frame.f_lineno you'll see it blocks at io.py line 1036, waiting for a Lock for the second time.
So the trace function cannot use print, not write to regular files (because io.py is written in Python). This is a severe limitation. As a workaround, you can use the _fileio module (written in C): import _fileio f = _fileio._FileIO("output.txt", "w", True) def tracing_func(frame, event, arg): f.write('%s %s %d\n' % (frame.f_code.co_filename, frame.f_code.co_ name, frame.f_lineno)) return tracing_func A possible fix would be to use an RLock instead of a Lock object, but I haven't investigated it. ---------- components: +Library (Lib) nosy: +gagenellina _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue4716> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com