【发布时间】:2025-11-21 19:35:01
【问题描述】:
我知道bash -x script.sh 将在实际执行之前执行脚本打印每一行。
如何让 Perl 和 Python 解释器做同样的事情?
【问题讨论】:
标签: python bash perl debugging trace
我知道bash -x script.sh 将在实际执行之前执行脚本打印每一行。
如何让 Perl 和 Python 解释器做同样的事情?
【问题讨论】:
标签: python bash perl debugging trace
Devel::Trace 是 Perl 的类似物,trace module 是 Python 的。
【讨论】:
perl -d:Trace program.pl和python -m trace -t program.py。
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 上测试。
【讨论】:
-t,并显示了您在最小的多文件示例中获得的结果。
Devel::DumpTrace 于 2011 年发布,比 Devel::Trace 具有更多功能,例如在跟踪输出中评估变量值。
【讨论】: