非常教程

Python参考手册

调试和分析 | Debugging & Profiling

trace

源代码: Lib / trace.py

trace模块允许您跟踪程序执行,生成带注释的语句覆盖列表,打印在程序运行期间执行的调用者/被调用者关系和列表函数。它可以在另一个程序或命令行中使用。

1.命令行用法

trace模块可以从命令行调用。它可以如此简单

python -m trace --count -C . somefile.py ...

以上将执行somefile.py并生成执行过程中导入到当前目录中的所有Python模块的注释列表。

--help

显示使用情况并退出。

--version

显示模块的版本并退出。

1.1.主要选项

调用时必须至少指定以下选项之一trace。该--listfuncs选项与--trace和选项是互斥的--count。何时--listfuncs提供,既不被接受--count也不--trace被接受,反之亦然。

-c, --count

在程序完成时产生一组带注释的列表文件,显示每个语句执行的次数。另见--coverdir--file--no-report下面。

-t, --trace

在执行时显示行。

-l, --listfuncs

显示通过运行程序执行的功能。

-r, --report

从使用--countand --file选项的早期程序运行中生成注释列表。这不会执行任何代码。

-T, --trackcalls

显示通过运行程序暴露的调用关系。

1.2.修饰符

-f, --file=<file>

要积累的文件的名称将在多次跟踪运行中计数。应该与--count选项一起使用。

-C, --coverdir=<dir>

报告文件所在的目录。覆盖率报告package.module写入文件。dir/package/module.cover

-m, --missing

当生成带注释的列表时,标记未被执行的行>>>>>>

-s, --summary

在使用--count或时--report,为每个处理的文件写一个简短的总结到stdout。

-R, --no-report

不要生成带注释的列表。如果您打算使用几次运行--count,然后在最后生成一组注释列表,这非常有用。

-g, --timing

在每行的前面加上自程序启动以来的时间。仅在追踪时使用。

1.3.过滤器

这些选项可能会重复多次。

--ignore-module=<mod>

忽略每个给定的模块名称及其子模块(如果它是一个包)。参数可以是用逗号分隔的名称列表。

--ignore-dir=<dir>

忽略指定目录和子目录中的所有模块和程序包。该参数可以是一个由目录分隔的目录列表os.pathsep

2.编程接口

class trace.Trace([count=1[, trace=1[, countfuncs=0[, countcallers=0[, ignoremods=()[, ignoredirs=()[, infile=None[, outfile=None[, timing=False]]]]]]]]])

创建一个对象来跟踪单个语句或表达式的执行。所有参数都是可选的。计数可以计算行号。跟踪启用行跟踪。countfuncs可以列出运行期间调用的函数。计数器支持呼叫关系跟踪。ignoremods是要忽略的模块或软件包的列表。ignoredirs是应该忽略模块或包的目录列表。infile是从中读取存储计数信息的文件的名称。outfile是在其中写入更新的计数信息的文件的名称。定时 启用相对于何时开始显示跟踪的时间戳。

run(cmd)

执行命令并使用当前跟踪参数从执行中收集统计信息。cmd必须是一个字符串或代码对象,适合传入exec()

runctx(cmd, globals=None, locals=None)

在已定义的全局和本地环境中,执行命令并使用当前跟踪参数从执行中收集统计信息。如果未定义,全局变量本地变量默认为空字典。

runfunc(func, *args, **kwds)

使用当前跟踪参数在对象控制下调用给定参数的funcTrace

results()

返回一个CoverageResults包含所有以前调用的累积结果的对象runrunctxrunfunc对于给定的Trace实例。不重置累积的跟踪结果。

class trace.CoverageResults

覆盖率结果的容器,由...创建Trace.results()。不应该由用户直接创建。

update(other)

合并来自另一个CoverageResults对象的数据。

write_results([show_missing=True[, summary=False[, coverdir=None]]])

撰写报道结果。设置show_missing以显示没有匹配的行。设置摘要以在输出中包含每个模块的覆盖率摘要。coverdir指定将输出覆盖率结果文件的目录。如果None,每个源文件的结果都放在其目录中。

演示使用编程接口的简单示例:

import sys
import 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 tracer
tracer.run('main()')

# make a report, placing output in the current directory
r = tracer.results()
r.write_results(show_missing=True, coverdir=".")

调试和分析 | Debugging & Profiling相关

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法