# Debugging and Profiling

这些库可以帮助你进行 Python 开发：调试器使你能够逐步执行代码，分析堆栈帧并设置断点等等，性能分析器可以运行代码并为你提供执行时间的详细数据，使你能够找出你的程序中的瓶颈。 审计事件提供运行时行为的可见性，如果没有此工具则需要进行侵入式调试或修补。

- 审计事件表
- `bdb` --- 调试器框架
- `faulthandler` --- 转储 Python 回溯信息
  - 转储跟踪信息
  - 对 C 栈进行转储
    - C 栈兼容性
  - 故障处理程序的状态
  - 一定时间后转储跟踪数据
  - 转储用户信号的跟踪信息
  - 文件描述符相关话题
  - 示例
- `pdb` --- The Python Debugger
  - 命令行接口
  - 调试器命令
- The Python Profilers
  - Introduction to the profilers
  - Instant User's Manual
  - `profile` and `cProfile` Module Reference
  - The `Stats` Class
  - What Is Deterministic Profiling?
  - 局限性
  - 校准
  - 使用自定义计时器
- `timeit` --- 测量小代码片段的执行时间
  - Basic Examples
  - Python Interface
  - Command-Line Interface
  - 例子
- `trace` --- 跟踪或记录 Python 语句的执行
  - 命令行用法
    - 主要的可选参数
    - 修饰器
    - 过滤器
  - 编程接口
- `tracemalloc` --- 跟踪内存分配
  - 例子
    - 显示前10项
    - 计算差异
    - 获取一个内存块的溯源
    - 美化的 top
      - 记录所有被追踪内存块的当前和峰值大小
  - API
    - 函数
    - 域过滤器
    - 过滤器
    - 帧
    - 快照
    - 统计
    - StatisticDiff
    - 跟踪
    - 回溯