另一个要注意的好工具是跟踪模块。有3个显示函数名称的选项。
范例foo.py:
def foo():
   bar()
def bar():
   print("in bar!")
foo()
- 使用
-l/--listfuncs到列表funtions: 
$ python -m trace --listfuncs foo.py
in bar!
functions called:
filename: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/trace.py, modulename: trace, funcname: _unsettrace
filename: foo.py, modulename: foo, funcname: <module>
filename: foo.py, modulename: foo, funcname: bar
filename: foo.py, modulename: foo, funcname: foo
- 使用
-t/--trace到表行,因为他们被执行。 
$python -m trace --trace foo.py
 --- modulename: foo, funcname: <module>
foo.py(1): def foo():
foo.py(4): def bar():
foo.py(7): foo()
 --- modulename: foo, funcname: foo
foo.py(2):    bar()
 --- modulename: foo, funcname: bar
foo.py(5):    print("in bar!")
in bar!
- 使用
-T/--trackcalls到列表什么叫什么 
$ python -m trace --trackcalls foo.py
in bar!
calling relationships:
*** /usr/lib/python3.8/trace.py ***
  --> foo.py
    trace.Trace.runctx -> foo.<module>
*** foo.py ***
    foo.<module> -> foo.foo
    foo.foo -> foo.bar