Wie Traceit verwendet wird, um Funktionseingabevariablen im Stack-Trace zu melden
Ich habe den folgenden Code verwendet, um die Ausführung meiner Programme zu verfolgen:
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()
Wenn Sie diesen oder einen ähnlichen Code verwenden, können Sie die Werte bestimmter Funktionsargumente melden? Mit anderen Worten, der obige Code sagt mir, "welche" Funktionen aufgerufen wurden und ich möchte wissen, "was" die entsprechenden Werte der Eingabevariablen für diese Funktionsaufrufe sind.
Danke im Voraus