代码之家  ›  专栏  ›  技术社区  ›  Vi.

如何使Perl和Python打印正在执行的程序的每一行?

  •  40
  • Vi.  · 技术社区  · 14 年前

    我知道 bash -x script.sh 将在实际执行之前执行脚本打印。 如何使Perl和Python解释器做相同的工作?

    3 回复  |  直到 7 年前
        1
  •  45
  •   msw    14 年前

    Devel::Trace 是Perl模拟 trace module 是蟒蛇的。

        2
  •  5
  •   mob    9 年前

    Devel::DumpTrace 2011年发布,功能超过 Devel::Trace 例如,在跟踪输出中评估变量值。

        3
  •  4
  •   Ciro Santilli OurBigBook.com    7 年前

    python -m trace -t main.py

    测试程序:

    Me.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上测试。