Como usar o traceit para relatar variáveis de entrada de função no rastreamento de pilha
Eu tenho usado o código a seguir para rastrear a execução dos meus programas:
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()
Usando esse código, ou algo parecido, é possível relatar os valores de certos argumentos da função? Em outras palavras, o código acima me diz "quais" funções foram chamadas e eu gostaria de saber "quais" os valores correspondentes das variáveis de entrada para essas chamadas de função.
Desde já, obrigado.