summaryrefslogtreecommitdiff
path: root/lab/run_trace.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-04-20 12:21:15 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-04-20 12:21:15 -0400
commit1b81747e52752a30be1c4271e24d23a7cb3f71b4 (patch)
tree8297b06a003a0c1a79c2bf391d2c0f0cfb128d81 /lab/run_trace.py
parent03eb833bac7731bd6dfd4ca5d0eae1da7213eb57 (diff)
parentde4cfde7b1f7b3d3bee11a26b4c1bb3ae598259c (diff)
downloadpython-coveragepy-git-1b81747e52752a30be1c4271e24d23a7cb3f71b4.tar.gz
Merge issue-324 fix
Diffstat (limited to 'lab/run_trace.py')
-rw-r--r--lab/run_trace.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/lab/run_trace.py b/lab/run_trace.py
new file mode 100644
index 00000000..3822a804
--- /dev/null
+++ b/lab/run_trace.py
@@ -0,0 +1,32 @@
+"""Run a simple trace function on a file of Python code."""
+
+import os, sys
+
+nest = 0
+
+def trace(frame, event, arg):
+ global nest
+
+ if nest is None:
+ # This can happen when Python is shutting down.
+ return None
+
+ print "%s%s %s %d @%d" % (
+ " " * nest,
+ event,
+ os.path.basename(frame.f_code.co_filename),
+ frame.f_lineno,
+ frame.f_lasti,
+ )
+
+ if event == 'call':
+ nest += 1
+ if event == 'return':
+ nest -= 1
+
+ return trace
+
+the_program = sys.argv[1]
+
+sys.settrace(trace)
+execfile(the_program)