
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.

* ``bdb`` --- Debugger framework
* ``faulthandler`` --- Dump the Python traceback
  * Dump the traceback
  * Fault handler state
  * Dump the tracebacks after a timeout
  * Dump the traceback on a user signal
  * File descriptor issue
  * Example
* ``pdb`` --- The Python Debugger
  * Debugger Commands
* The Python Profilers
  * Introduction to the profilers
  * Instant User's Manual
  * What Is Deterministic Profiling?
  * Reference Manual -- ``profile`` and ``cProfile``
    * The ``Stats`` Class
  * Limitations
  * Calibration
  * Extensions --- Deriving Better Profilers
* ``timeit`` --- Measure execution time of small code snippets
  * Basic Examples
  * Python Interface
  * Command-Line Interface
  * Examples
* ``trace`` --- Trace or track Python statement execution
  * Command-Line Usage
    * Main options
    * Modifiers
    * Filters
  * Programmatic Interface