Skip to main content

IPython-enabled pdb

Project description

IPython pdb

https://travis-ci.org/gotcha/ipdb.png?branch=master

Use

ipdb exports functions to access the IPython debugger, which features tab completion, syntax highlighting, better tracebacks, better introspection with the same interface as the pdb module.

Example usage:

import ipdb
ipdb.set_trace()
ipdb.pm()
ipdb.run('x[0] = 3')
result = ipdb.runcall(function, arg0, arg1, kwarg='foo')
result = ipdb.runeval('f(1,2) - 3')

The post-mortem function, ipdb.pm(), is equivalent to the magic function %debug.

If you install ipdb with a tool which supports setuptools entry points, an ipdb script is made for you. You can use it to debug your python 2 scripts like

$ bin/ipdb mymodule.py

And for python 3

$ bin/ipdb3 mymodule.py

Alternatively with Python 2.7 only, you can also use

$ python -m ipdb mymodule.py

You can also enclose code with the with statement to launch ipdb if an exception is raised:

from ipdb import launch_ipdb_on_exception

with launch_ipdb_on_exception():
    [...]

Development

ipdb source code and tracker are at https://github.com/gotcha/ipdb.

Pull requests should take care of updating the changelog HISTORY.txt.

Third-party support

Products.PDBDebugMode

Zope2 Products.PDBDebugMode uses ipdb, if available, in place of pdb.

iw.debug

iw.debug allows you to trigger an ipdb debugger on any published object of a Zope2 application.

ipdbplugin

ipdbplugin is a nose test runner plugin that also uses the IPython debugger instead of pdb. (It does not depend on ipdb anymore).

Changelog

0.7.1 (2013-09-19)

  • IPython 1.0 compatibility [pgularski]

  • Index into version_info in setup.py for Python 2.6 compatibility. [kynan]

  • Add Travis CI configuration. [kynan]

0.7 (2012-07-06)

  • Add launch_ipdb_on_exception context manager. [Psycojoker]

  • Wrap sys.excepthook only once. [marciomazza]

  • Add GPL file and refer in headers. [stan3]

  • Python 3 support. [Piet Delport]

  • Basic tests. [msabramo]

  • Added the functions runcall, runeval and run. [dimasad]

0.6.1 (2011-10-17)

  • State dependency on IPython later or equal to 0.10. [gotcha]

0.6 (2011-09-01)

0.5 (2011-08-05)

  • IPython 0.11 support. [lebedov]

0.4 (2011-06-13)

0.3 (2011-01-16)

  • Add post_mortem() for Products.PDBDebugMode support. [Jean Jordaan]

  • Moved to github.com.

0.2 (2010-10-20)

  • Added pm(). [Paulo Benedict Ang]

0.1 (2010-04-26)

  • First “non dev” release.

Supported by

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