– 跟踪或跟踪Python语句执行 – 调试和分析(Python教程)(参考资料)
trace– 跟踪或跟踪Python语句执行
源代码: Lib / trace.py
trace模块允许您跟踪程序执行,生成带注释的语句覆盖列表,打印调用者/被调用者关系以及在程序运行期间执行的列表函数。它可以在命令行中用于另一个编程器.
另请参阅
- Coverage.py
- 一个流行的第三方覆盖工具,提供HTMLoutput以及分支覆盖等高级功能.
命令 – 线路使用
trace可以从命令行调用模块。它可以简单地作为
python -m trace --count -C . somefile.py ...
以上将执行somefile.py并生成在执行过程中导入的所有Python模块的注释列表到当前目录.
--help-
显示用法并退出.
--version-
显示模块的版本并退出.
主要选项
调用trace时,必须至少指定以下选项之一。--listfuncs选项与--trace和--count选项互斥。什么时候--listfuncs提供,--count和--trace都不被接受,反之亦然.
-t,--trace-
在执行时显示行.
-l,--listfuncs-
显示通过运行程序执行的功能.
-T,--trackcalls-
显示通过运行程序公开的调用关系.
程序界面
- class
trace.Trace(count=1, trace=1, countfuncs=0, countcallers=0, ignoremods=(), ignoredirs=(), infile=None, outfile=None, timing=False) -
创建一个对象以跟踪单个语句或表达式的执行。所有参数都是可选的。count可以计算行号。trace启用行执行跟踪。countfuncs允许列出运行期间调用的功能。countcallers启用呼叫关系跟踪。ignoremods是要忽略的模块或包的列表.ignoredirs是一个模块或包应该签名的目录列表。infile是从中读取存储的count信息的文件的名称。outfile是要写入updatedcount信息的文件的名称。timing启用相对于启动跟踪时的时间戳.
- class
trace.CoverageResults -
//覆盖结果的容器,由
Trace.results()创建。不应该由用户直接创建.
一个简单的例子演示程序界面的使用:
import sysimport trace# create a Trace object, telling it what to ignore, and whether to# do tracing or line-counting or both.tracer = trace.Trace( ignoredirs=[sys.prefix, sys.exec_prefix], trace=0, count=1)# run the new command using the given tracertracer.run("main()")# make a report, placing output in the current directoryr = tracer.results()r.write_results(show_missing=True, coverdir=".")
评论被关闭。