Skip to main content

Products.PDBDebugMode

Enable various PDB debugging when debug-mode=on

When Zope is running in debug mode this product hooks PDB debugging into various parts of a Zope instance. Some additional Plone specific hooks are also included.

Requirements

This version of PDBDebugMode has been tested with Plone 6.2 on Python 3.10-3.13.

For Zope4 and Plone 5.2 in Python 2.7, 3.6 and 3.7 please use Products.PDBDebugMode = 2.1.

For Zope 2 (until Plone 5.1) please use Products.PDBDebugMode = 1.3.

If ipdb (http://pypi.python.org/pypi/ipdb) is available, it will use that instead of standard pdb.

Its recommended that you use an editor or IDE that can cooperate with pdb. Emacs for example, will display the corresponding lines of the source file alongside the pdb prompt.

Remember that this product does nothing unless zope is being run with debug-mode=on such as with ./bin/instance fg.

Post-Mortem Debugging

To provide for better investigation of errors, any error or exception logged with the python logging module will invoke pdb.post_mortem() if a traceback can be retrieved and set_trace will be invoked otherwise. Since the Zope error_log exception handler uses the logging module when logging errors, this provides for post mortem debugging of Zope errors. It is often useful, for example, to remove NotFound or Unauthorized from the ignored exception in error_log and then investigate such errors with PDB.

Runcall Requests

Any request that has the key pdb_runcall will call the result of the request traversal in the debugger thus allowing for stepping through the resulting execution. To debug a POST or any other request which might be tricky to insert the pdb_runcall key into, use ?toggle_runcall=1 at the end of a URL immediately preceding the POST to set a pdb_runcall cookie which will then invoke the pdb.runcall when the POST is submitted. Use ?toggle_runcall=1 at the end of a URL to clear the cookie. Remember that the cookie will be set at the level in the hierarchy that it was set.

Debug View

Additionally, a view named pdb is registered for all objects that will simply raise an exception leaving you with the current context to inspect. Use it for example by calling http://localhost:8080/Plone/foo/@@pdb.

Allow Import of pdb

Import of the pdb module is also allowed in unprotected code such as python scripts.

Changelog

3.0.0 (2025-12-23)

Breaking changes:

  • Replace pkg_resources namespace with PEP 420 native namespace. Support only Plone 6.2 and Python 3.10+. #3928

Internal:

  • Move distribution to src layout @gforcada #4217
  • Update configuration files @plone

2.1 (2025-06-19)

Bug fixes:

  • Include dependencies in zcml to fix use in a pip-based install. @pbauer

2.0 (2019-04-01)

New features:

  • Add log-message on startup. @pbauer

Bug fixes:

1.4 (2019-03-02)

Breaking changes:

  • Make compatible with Zope4 and drop support for Zope 2. @pbauer

New features:

  • Add compatibility for Python 3 and 2. @frapell

  • Improve debug mode detection, provide a ZCML feature, and enable when running tests with '-D'. @rpatterson

  • Add zope.testrunner support. @rpatterson

  • Add some missing iPython support for runcall and broken_delete. @rpatterson

Bug fixes:

  • Apparently the ipdb support only works with ipdb 0.3 or greater. Added an "ipdb" extra for this requirement. @rossp

  • Fix ipdb import in zcatalog.py. @pabo

1.3 - 2011-01-14

  • Ignore invalid GenericSetup handlers. @rossp

  • Use ipdb when available. @neaj

1.2 - 2011-01-07

  • Add some zopectl scripts I use when evaluating upgrades. @rossp

  • Better handling of exceptions while checking error matching. @rossp

  • Fix a problem with doing post_mortem debugging of error_log ignored exceptions. @rossp

  • Fix handling of socket errors

  • Fix handling of SiteErrorLog tracebacks

  • Fix handling of exc_info logging arg

1.1 - 2009-04-18

  • Fix a bug due to a change in monkeypatcher

1.0 - 2009-04-10

  • Add collective.monkeypatcher as a requirement @kdeldycke

  • Fix some recursion errors

0.3 - 2009-04-08

  • Use collective.monkeypatcher to move all patches into ZCML

  • Fully deprecate the Zope exception handler in favor of the logging hook since the Zope exception handler uses the logging module anyways and more can be done by hooking at that level.

  • Handle failed matches in Products.PDBDebugMode.pdblogging more gracefully

  • More flexible log matching. Change Products.PDBDebugMode.pdblogging.ignore_regexes to ignore_matchers and accept any callable.

0.2 - 2008-05-15

  • Eggified

0.1 - 2006-03-11

  • Initial release

Release files for Products.PDBDebugMode 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Products.PDBDebugMode 3.0.0
File Size Uploaded
products_pdbdebugmode-3.0.0.tar.gz 21.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Products.PDBDebugMode 3.0.0
File Interpreter ABI Platform
products_pdbdebugmode-3.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.8 kB

Release files / products_pdbdebugmode-3.0.0.tar.gz

Download URL products_pdbdebugmode-3.0.0.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a3a5f1433416b5a856b273fff5d1420dcc9aacfe1b2212279ec8c938f71ba317
BLAKE2b-256 checksum
How to use checksums
2991318c9efdad4730b48b54a32b9474523bfb976b9532574db3e0ec26c35b7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / products_pdbdebugmode-3.0.0-py3-none-any.whl

Download URL products_pdbdebugmode-3.0.0-py3-none-any.whl
Size 13.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
33d1ea8e1be89990939850d7436813f85a3ff6b8080eaee700be0fe44408b8f6
BLAKE2b-256 checksum
How to use checksums
44e12b4cfdff5dc8a5e37ca2427f25493f462d7c772071a1f45655dbc3992b7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files

2.1

2 release files

2.0

1 release file

1.4

1 release file

1.3.1

1 release file

1.3

1 release file

1.2

1 release file

1.1

1 release file

1.0

1 release file

0.3

1 release file

0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page