# 26. Debugging and Profiling

These libraries help you with Python development: the debugger enables you to step through code, analyze stack frames and set breakpoints etc., and the profilers run code and give you a detailed breakdown of execution times, allowing you to identify bottlenecks in your programs.

- 26.1. `bdb` — Debugger framework
- 26.2. `pdb` — The Python Debugger
- 26.3. Debugger Commands
- 26.4. The Python Profilers
  - 26.4.1. Introduction to the profilers
  - 26.4.2. Instant User’s Manual
  - 26.4.3. `profile` and `cProfile` Module Reference
  - 26.4.4. The `Stats` Class
  - 26.4.5. What Is Deterministic Profiling?
  - 26.4.6. Limitations
  - 26.4.7. Calibration
  - 26.4.8. Using a custom timer
- 26.5. `hotshot` — High performance logging profiler
  - 26.5.1. Profile Objects
  - 26.5.2. Using hotshot data
  - 26.5.3. Example Usage
- 26.6. `timeit` — Measure execution time of small code snippets
  - 26.6.1. Basic Examples
  - 26.6.2. Python Interface
  - 26.6.3. Command-Line Interface
  - 26.6.4. Examples
- 26.7. `trace` — Trace or track Python statement execution
  - 26.7.1. Command-Line Usage
    - 26.7.1.1. Main options
    - 26.7.1.2. Modifiers
    - 26.7.1.3. Filters
  - 26.7.2. Programmatic Interface