import sys 
def traceit (frame, event, arg):
	if event == "call":
		print "%s() --> from %s:%d" % (frame.f_code.co_name, frame.f_back.f_code.co_filename, frame.f_back.f_lineno)

def fact(i):
	if(i == 1):
		return 1
	return fact(i-1) * i

def main():
	print fact(9)

sys.settrace (traceit) 

main ()
