– 跟踪或跟踪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=".")
评论被关闭。