Как использовать traceit для сообщения о входных переменных функций в трассировке стека
Я использовал следующий код для отслеживания выполнения моих программ:
import sys
import linecache
import random
def traceit(frame, event, arg):
if event == "line":
lineno = frame.f_lineno
filename = frame.f_globals["__file__"]
if filename == "<stdin>":
filename = "traceit.py"
if (filename.endswith(".pyc") or
filename.endswith(".pyo")):
filename = filename[:-1]
name = frame.f_globals["__name__"]
line = linecache.getline(filename, lineno)
print "%s:%s:%s: %s" % (name, lineno,frame.f_code.co_name , line.rstrip())
return traceit
def main():
print "In main"
for i in range(5):
print i, random.randrange(0, 10)
print "Done."
sys.settrace(traceit)
main()
Используя этот код или что-то в этом роде, возможно ли сообщить значения определенных аргументов функции? Другими словами, приведенный выше код сообщает мне «какие» функции были вызваны, и я хотел бы знать, «что» соответствующие значения входных переменных для этих вызовов функций.
Заранее спасибо.