Skip to main content

Cross-debugger inline debugging tracepoints for pdb/winpdb/pydevd/pycharm

Project description

Convenience method for manually inserting tracepoints into code that support multiple debuggers

import dbg ; dbg.D()

as an alternative to:

import pdb ; pdb.set_trace()

This supports multiple debuggers; currently pdb (or Pdb++ if installed), winpdb, and pydevd (which is used inside both PyDev and PyCharm).

Selecting the debugger

The debugger desired can be selected by setting the environment variable PYDBG. The following are valid values:

  • pydevd or pycharm will use pydevd locally (if running in debug mode) or remotely if not

  • pydevd_remote or pycharm_remote will use pydevd remotely

  • pydevd_local or pycharm_local will use pydevd locally, and warn if not running in debug mode

  • winpdb will use winpdb

  • pdb will use pdb (default)

An environment variable is used so that imports of the debugger libraries can be determined at import time.

Inserting a tracepoint

Call dbg.D() to insert a tracepoint in the code; the appropriate debugger should launch when that line of code is executed, ready to execute the following line.

A thread-safe version dbg.tsD()``is also supported. This is only different when using ``pdb; in that case multiple threads having tracepoints (for example, in a web server) can cause confusion as multiple debug sessions get attached to the same console. The tsD implementation uses a lock to only allow one debug session to use the console at once; other sessions are not allowed the lock until the debug interaction is finished (e.g. typing c for continue).

Parameters for debuggers

Some debuggers have parameters that can be set using environment variables, or at runtime.

pydevd implementation will use the value of the environment variables PYDEVD_HOST for hostname and PYDEVD_PORT for port when connecting remotely by default. These can also be adjusted on by setting dbg.pydevd_args.host and dbg.pydevd_args.port at runtime.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbghelper-0.3.tar.gz (4.2 kB view hashes)

Uploaded Source

Built Distribution

dbghelper-0.3-py2.7.egg (7.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page