Skip to main content

pdbp (Pdb+): A drop-in replacement for pdb and pdbpp.

Project description

pypi is a proxy for installing pypi (Pdb+).


pdbp (Pdb+)

Pdb+ Advanced Python Console Debugger

pdbp (Pdb+) is an advanced console debugger for Python. It can be used as a drop-in replacement for pdb and pdbpp.

pdbp (Pdb+) makes Python debugging a lot easier (and more fun!)


Installation:

pip install pdbp

Then add import pdbp to an __init__.py of your project, which will automatically make Pdb+ the default debugger at breakpoints:

import pdbp

(If using flake8 for code-linting, you may want to add # noqa to that line):

import pdbp  # noqa

You can also make pdbp the default debugger by setting an environmental variable:

PYTHONBREAKPOINT=pdbp.set_trace

Usage:

To trigger a breakpoint in your code with pytest, add --trace (to start tests with a breakpoint) or --pdb (to trigger a breakpoint if a test fails).

To trigger a breakpoint from a pure python run, use:

python -m pdbp <script.py>

Basic Pdb+ console commands: n, c, s, u, d => next, continue, step, up, down

(To learn more Pdb+ console commands, type help in the Pdb+ console and press Enter/Return.)


pdbp (Pdb+) makes improvements to pdbpp so that it works in all environments. It also includes other bug-fixes. "Sticky" mode is the default option, which shows multiple lines of code while letting you see where you're going (while typing n + Enter).

If you somehow reset pdb to Python's built-in version, you can always replace pdb with pdbp again as the default debugger by running this:

import pdb
import pdbp
for key in pdbp.__dict__.keys():
    pdb.__dict__[key] = pdbp.__dict__[key]

Here's how to customize pdbp/pdb options if you don't like the default settings: (Shown below are the default settings.)

import pdb
if hasattr(pdb, "DefaultConfig"):
    pdb.DefaultConfig.filename_color = pdb.Color.fuchsia
    pdb.DefaultConfig.line_number_color = pdb.Color.turquoise
    pdb.DefaultConfig.truncate_long_lines = False
    pdb.DefaultConfig.sticky_by_default = True

You can also trigger Pdb+ activation like this:

import pdbp
pdbp.set_trace()

pdbp (Pdb+) commands:

Pdb+ commands

Post Mortem Debug Mode:

Pdb+ Post Mortem Debug Mode

The where / w command, which displays the current stack:

Example of the 'where' command

Sticky Mode vs Non-Sticky Mode:

The default mode (sticky) lets you see a lot more lines of code from the debugger when active. In Non-Sticky mode, only one line of code is shown at a time. You can switch between the two modes by typing sticky in the Pdb+ console prompt and pressing Enter/Return.

Sticky Mode:

Pdb+ Stick Mode

Non-Sticky Mode:

Pdb+ Non-Sticky Mode

Tab completion:

Pdb+ Tab Completion

Multi-layer highlighting in the same stack:

Pdb+ Advanced Python Console Debugger

More examples:

Pdb+ is used by packages such as seleniumbase:


Pdb+ Advanced Python Console Debugger

(Pdb+ is maintained by the SeleniumBase Dev Team)

Download files

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

Source Distribution

pdbplus-1.5.4.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

pdbplus-1.5.4-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file pdbplus-1.5.4.tar.gz.

File metadata

  • Download URL: pdbplus-1.5.4.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.4

File hashes

Hashes for pdbplus-1.5.4.tar.gz
Algorithm Hash digest
SHA256 8b8d813447527a4acd2dd274785b923b440053584ef2e254b83b4e1f07c6fd8f
MD5 6a48247d9cab65139aff67bf9d8839db
BLAKE2b-256 58b7c699794c9b8c0fba0fe6168a2dfa170e9cd30af3c02d8c4326f782d05043

See more details on using hashes here.

File details

Details for the file pdbplus-1.5.4-py3-none-any.whl.

File metadata

  • Download URL: pdbplus-1.5.4-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.4

File hashes

Hashes for pdbplus-1.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a76da999b57a9627c129489fa798de2d859d4de21d74ead62e79f67fe3eb80e3
MD5 c8232faede84dbd63b7106271a8a0137
BLAKE2b-256 02a1ebf85f9c4baaa980310069f9b187aab235d86d0182b7d9e3b51a05c9bfc1

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