(original) (raw)
#!/usr/bin/env python3 import threading counts = {} def globaltrace_lt(frame, why, arg): if why == 'call': return localtrace_count def localtrace_count(frame, why, arg): if why == "line": filename = frame.f_code.co_filename lineno = frame.f_lineno key = filename, lineno counts[key] = counts.get(key, 0) + 1 return localtrace_count def main(): code = compile("import multiprocessing; multiprocessing.Queue().put('a')", 'test.py', 'exec') threading.settrace(globaltrace_lt) exec(code) threading.settrace(None) for filename, lineno in counts: import time time.sleep(1) # lines_hit = per_file[filename] = per_file.get(filename, {}) # lines_hit[lineno] = counts[(filename, lineno)] if __name__=='__main__': main()