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 details)

Uploaded Source

Built Distribution

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

Uploaded Source

File details

Details for the file dbghelper-0.3.tar.gz.

File metadata

  • Download URL: dbghelper-0.3.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dbghelper-0.3.tar.gz
Algorithm Hash digest
SHA256 09c4c537ff485811598e269568261093984054fdc61dbfc548a98f9349af0acb
MD5 f352f884cd88c8d64082a9f10646bca4
BLAKE2b-256 ccaf1c552a9b7a3eadfcbb86d0b5b81c9c313cff399c22ef43621f6eb927b428

See more details on using hashes here.

File details

Details for the file dbghelper-0.3-py2.7.egg.

File metadata

  • Download URL: dbghelper-0.3-py2.7.egg
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dbghelper-0.3-py2.7.egg
Algorithm Hash digest
SHA256 11fed4a2bf635efb38d4d01044cd5b60579a1db8c5b6f7aeea8f605223f1777c
MD5 5c6ad8cca590d6f3d0dcdc0fc9a85636
BLAKE2b-256 0edeba0b351a91d3cf4a83bbdebc74d23a09a718bf2a4c20cfc56f3279a84fae

See more details on using hashes here.

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