Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # thx to Foundations of py net prog
- # tool for tracing a single function
- import linecache
- import sys
- import time
- def make_tracer(funcname):
- def mytrace(frame, event, arg):
- if frame.f_code.co_name == funcname:
- if event == 'line':
- _events.append((time.time(), frame.f_code.co_filename, frame.f_lineno))
- return mytrace
- return mytrace
- if __name__ == '__main__':
- _events = []
- if len(sys.argv) < 3:
- print >>sys.stderr, 'usage: trace.py funcname other_script.py ...'
- sys.exit(2)
- sys.settrace(make_tracer(sys.argv[1]))
- del sys.argv[0:2]
- try:
- execfile(sys.argv[0])
- finally:
- for t, filename, lineno in _events:
- s = linecache.getline(filename, lineno)
- sys.stdout.write('%9.6f %s' % (t % 60.0, s))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement