我知道bash -x script.sh
将在实际执行之前执行脚本打印每一行。
如何使Perl和Python解释器做同样的事情?
答案 0 :(得分:45)
Devel::Trace是Perl模拟,trace module是Python的。
答案 1 :(得分:5)
Devel::DumpTrace
于2011年发布,其功能多于Devel::Trace
,例如评估跟踪输出中的变量值。
答案 2 :(得分:4)
<强> python -m trace -t main.py
强>
测试程序:
<强> main.py 强>
from a import g
def f(i):
g(i)
for i in range(3):
f(i)
<强> a.py 强>
def g(i):
print i
输出:
--- modulename: main, funcname: <module>
main.py(1): from a import g
--- modulename: a, funcname: <module>
a.py(1): def g(i):
main.py(2): def f(i):
main.py(4): for i in range(3):
main.py(5): f(i)
--- modulename: main, funcname: f
main.py(3): g(i)
--- modulename: a, funcname: g
a.py(2): print i
0
main.py(4): for i in range(3):
main.py(5): f(i)
--- modulename: main, funcname: f
main.py(3): g(i)
--- modulename: a, funcname: g
a.py(2): print i
1
main.py(4): for i in range(3):
main.py(5): f(i)
--- modulename: main, funcname: f
main.py(3): g(i)
--- modulename: a, funcname: g
a.py(2): print i
2
main.py(4): for i in range(3):
--- modulename: trace, funcname: _unsettrace
trace.py(80): sys.settrace(None)
在Ubuntu 16.10,Python 2.7.12。
上测试