21 lines
552 B
Python
21 lines
552 B
Python
|
###############################################
|
||
|
#
|
||
|
# Odds and ends for debugging
|
||
|
#
|
||
|
###############################################
|
||
|
|
||
|
def print_call_chain(*args):
|
||
|
import sys
|
||
|
print(" ".join(map(str, args)))
|
||
|
f = sys._getframe(1)
|
||
|
while f:
|
||
|
name = f.f_code.co_name
|
||
|
s = f.f_locals.get('self', None)
|
||
|
if s:
|
||
|
c = getattr(s, "__class__", None)
|
||
|
if c:
|
||
|
name = "%s.%s" % (c.__name__, name)
|
||
|
print("Called from: %s %s" % (name, f.f_lineno))
|
||
|
f = f.f_back
|
||
|
print("-" * 70)
|