Cómo usar traceit para informar variables de entrada de función en el seguimiento de pila
He estado usando el siguiente código para rastrear la ejecución de mis 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 este código, o algo similar, ¿es posible informar los valores de ciertos argumentos de función? En otras palabras, el código anterior me dice "qué" funciones se llamaron y me gustaría saber "cuáles" son los valores correspondientes de las variables de entrada para esas llamadas de función.
Gracias por adelantado.