Jak sprawić, by Perl i Python wydrukowały każdą linię wykonywanego programu?

Wiem, że bash -x script.sh wykona skrypt drukujący każdą linię przed rzeczywistym wykonaniem. Jak sprawić, by interpretery Perla i Pythona robiły to samo?

Author: Randall, 2010-05-20

3 answers

Devel:: Trace jest analogiem Perla, moduł trace należy do Pythona.

 45
Author: msw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-20 08:32:13

Devel::DumpTrace został wydany w 2011 roku i ma więcej funkcji niż Devel::Trace, takich jak ocena wartości zmiennych w wyjściu śledzenia.

 4
Author: mob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 15:46:12

python -m trace -t main.py

Program testowy:

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

Wyjście:

 --- 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)
Testowane na Ubuntu 16.10, Pythonie 2.7.12.
 3
Author: Ciro Santilli 新疆改造中心 六四事件 法轮功,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-06 14:45:58