-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdebug.py
More file actions
32 lines (28 loc) · 728 Bytes
/
debug.py
File metadata and controls
32 lines (28 loc) · 728 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import sys
import types
import cocos
import pyglet
def get_refcounts():
d = {}
sys.modules
# collect all classes
for m in sys.modules.values():
for sym in dir(m):
o = getattr (m, sym)
if type(o) is types.ClassType:
d[o] = sys.getrefcount (o)
# sort by refcount
pairs = map (lambda x: (x[1],x[0]), d.items())
pairs.sort()
pairs.reverse()
return pairs
def print_top(count):
for n, c in get_refcounts()[:count]:
print '%10d %s' % (n, c.__name__)
def print_referrers(obj):
import gc
referrers = gc.get_referrers(obj)
print "num referrers", len(referrers)
for r in referrers:
print "REFERRER"
print r