我想构建一个工具,在推出用于测试的新代码时可以调用该工具,该工具将捕获和评估所有执行行并将它们打印到文件中,以便在执行完成后很长时间内可以对其进行跟踪和调试。将其视为一个调试器,它评估每一行代码的返回并在另一列中打印该行代码加上该行的返回值,因为它也在运行代码。例如:
Timestamp File-Line Source Code Debug Watcher
---------------- --------- ------------------------------- -----------------
20130109-10:18AM test.py-1 import mathy
20130109-10:18AM test.py-2 x = 1 # inline comments return: x:1
20130109-10:18AM test.py-3 ans = divide(x,2) call: math_functions.py-55:divide(dividend:1, divisor:2)
20130109-10:18AM mathy.py-56 return divedend / divisor divide() function return: 0.5
20130109-10:18AM test.py-4 print "Got %d"%ans call: print : "Got 0.5"
etc...
您是否看到在执行通过单独的函数、文件等时如何跟踪执行?这有可能生成大量日志数据,因此可以将其裁剪到某个限制大小。我还必须使用大型数据结构,例如字典、数组等,并创建一些特殊情况来处理这些事情。
在使用回溯之前,我已经创建了类似的东西,但它从来没有完全正确地工作过。只是想知道是否已经存在更精致的东西。如果没有,你会怎么做?谢谢。