gtk: don't use gtk if there's no display
[urk.git] / urk_trace.py
blob4b55b46d0a371673db2816be1d8f7dd642dc7a95
1 import sys
2 import commands
3 import linecache
5 import time
7 last_mem = [0]
9 def traceit_memory(frame, event, arg):
10 if event == "line":
11 mem = int(" " + commands.getoutput(
12 "ps -eo cmd,rss | grep urk_trace.py | grep -v grep"
13 ).split(" ")[-1])
15 if mem > last_mem[0]:
16 last_mem[0] = mem
18 mem = str(mem)
20 filename = frame.f_globals["__file__"]
22 if filename.endswith(".pyc") or filename.endswith(".pyo"):
23 filename = filename[:-1]
25 name = frame.f_globals["__name__"]
27 lineno = frame.f_lineno
28 line = linecache.getline(filename,lineno).rstrip()
30 data = "%s:%i: %s" % (name, lineno, line)
32 print "%s%s" % (data, mem.rjust(80 - len(data)))
34 return traceit_memory
36 lines = {}
38 def traceit(frame, event, arg):
39 if event == "line":
40 try:
41 filename = frame.f_globals["__file__"]
43 if filename.endswith(".pyc") or filename.endswith(".pyo"):
44 filename = filename[:-1]
46 name = frame.f_globals["__name__"]
48 lineno = frame.f_lineno
49 line = linecache.getline(filename,lineno).rstrip()
51 data = "%s:%i: %s" % (name, lineno, line)
53 print time.time(), data
55 #if data in lines:
56 # lines[data] += 1
57 #else:
58 # lines[data] = 1
60 except Exception, e:
61 print e
63 return traceit
65 def main():
66 import urk
67 urk.main()
69 sys.settrace(traceit)
70 main()