Add your useful tools here -- editors, debuggers and other utils that really help with the process.:
Debuggers
Name
Platform
Notes
Unix,Mac OS X
A visual, console-based, full-screen debugger, designed as a more comfortable drop-in replacement for pdb. (also supports IPython)
All
A .pdbrc for Python's standard debugger, pdb, which allows you to run arbitrary Python commands on pdb startup.
Unix, Windows, Mac OS X
A rewrite of pdb/pydb with closer compliance to gdb . This is the only debugger that I (rocky) am aware of that uses decompilation technology (also written by me), so that you can debug CPython bytcode files where no source code is available. Decompilation is also used to provide sensible debugging inside exec strings, and more accurate position information when stopped or in showing a stack trace. In addition to the features of pdb/pydb, the debugger supports syntax coloring (via pygments), has extensive on-line help (in rendered reStructuredText), readthedocs documentation, command completion, a smarter eval, debugger macros written in Python, and more.
Unix, Windows, Mac OS X
An extension of the pdb module of the standard library. It is meant to be fully compatible with its predecessor, yet it introduces a number of new features to make your debugging experience as nice as possible.
Unix, Windows, Mac OS X
A set of debugging decorators which respects Django's settings in case the package is withing a Django project. It allows a user to PDB into a function, do a Line profiler, inspect an object and Disasemble the function. Archived/abandoned by author in 2023
Windows, Linux
Fork of winpdb after it went unmaintained. Project released a v2.0 which supports Python 3, but has not released anything since 2020.
linux, python>=3.7
fully-featured remote debugger: attaching to running programs, especially usefull to debug programms with TUI
Debuggers that are no longer maintained:
Name
Platform
Notes
Unix,Linux,Windows
An advanced python debugger, with support for smart breakpoints, multiple threads, namespace modification, embedded debugging, encrypted communication and speed of up to 20 times that of pdb.
Unix, Windows, OS X
Obsolete. An expanded version of pdb loosely based on the gdb command set. The debugger supports thread debugging, signal handling, non-interactive tracing, and much more. This was written in the era of Python 2.4-2.6. See trepan3k below.
Mac OS X, OS/2, Unix, VMS and Windows
Both a CPYTHON and a JPYTHON(JYTHON) debugging framework which has been integrated inside Jedit as a standard jedit pluggin.
Unix,Windows
Debugger for Python programs with a graphical user interface. It uses bdb (part of stdlib) but adds a GUI and has some powerful features like object browser, windows for variables, classes, functions, exceptions, stack, conditional breakpoints, etc.
Unix, Windows,Mac OS X
(Predecessor of rpdb2 and winpdb) rpdb.py improves pdb's usability and adds support for remote debugging, multiple threads debugging, post mortem of unhandled exceptions, and for debugging of embedded scripts.
Unix
Graphical front-end for command-line debuggers such as GDB, DBX, WDB, Ladebug, JDB, XDB, the Perl debugger, the bash debugger, GNU Make debugger, or the Python debugger. DDD displays data structures as graphs and plots. A deprecated version of pydb comes with this package. For GNU make debugging, use ddd-test5
IDEs with Debug Capabilities
Since debugging is one of the the functions that usually helps make up the "Integrated" in "Integrated Development Environment", expect that most IDEs will have debugging capability even if not listed explicitly here (see IntegratedDevelopmentEnvironments).
Mac OS X, Linux, Windows
For teaching/learning programming. Focused on program runtime visualization. Provides stepping both in statements and expressions, no-hassle variables view, separate mode for explaining references etc.
Mac OS X, Linux, Windows
Allows debugging multiple threads in Jython and Python (It is featured as a 'Python IDE' plugin for Eclipse).
Mac OS X, Linux, Windows
An IDE that can debug multiple threads and multiple processes, including code launched from the IDE or code launched externally, running under CPython and Stackless Python. The GUI includes a Debug Probe, which is a Python shell running in the context of the paused debug process. The IDE's debugger also features value watching (by symbolic path, object reference, or a combination), conditional breakpoints, move program counter, debugging of tests running in the integrated unit testing tool, special support for Django, and How-Tos for debugging code running under Flask, web3py, Django, Google App Engine, wxPython, PyQt, Tkinter, Blender, Maya, NUKE, and many other packages.
Mac OS X, Linux, Windows
ActiveState have retired Komodo, the code is open sourced at https://github.com/ActiveState/OpenKomodoIDE
Mac OS X, Linux, Windows
PyCharm's integrated debugger works for Python and Jython, supports debugging of multiple threads, remote debugging, allows debugging Django, Google App Engine applications and unit tests. The debugger features various breakpoints, stepping modes, frames view, watches, evaluate expression tool and a debug console. Conditional and Exception breakpoint types are available for more precise control. Debug console allows executing any Python statements in the context of the process being debugged while stopped at a breakpoint.
Pyshield
Linux, Windows
An IDE tool used to edit, debug Python scripts, publish encrypted scripts, build a standalone executable file, and make installation in various forms(.msi, .tar.gz, .rpm, .zip, .tar.bz2). It includes an editor simulating Emacs python-mode, a GUI debugger simulating GDB, a project view used to manage scripts, modules, extensions, packages and platform specific data files. This seems to have disappeared, previous link was to a DashingSoft project called PyShield which is something different. Will remove if nobody finds a link.
Python Tools for Visual Studio
Windows
Supports Python (any implementation with sufficient sys.settrace capabilities) and IronPython .NET debugging. NOTE: Since VS 2017, this is integrated in VS and called Python Support in Visual Studio.
Mac OS X, Linux, Windows
Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and MacOS. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring. VS Code is free to use, although the official version is under a proprietary license. VSCodium is the unencumbered version, but it cannot use extensions from the Marketplace.
Mac OS X, Linux, Windows
A simple Python editor for beginner programmers, providing a simple interface depending on the project type. It includes visual debugging as first citizen.
Web (Mac OS X, Linux, Windows)
Web UI for Notebooks in Python and other programming language, has a visual debugger intregrated.
Profilers
Special-purpose tools
Mac OS X, Linux
Remote process inspector (using an active component, using a thread or a plain simple signal handler).
Any
Trace hook logger which outputs each thread in its own "swimlane" to make multithreaded analysis easier. Can also time calls (naively) and watch variables. The former site is a now a malware trap. If the tool still exists, please update with a valid link.
Mac OS X, Linux
Library and a set of tools for injecting code into running Python programs to monitor, analyze, introspect, and alter running Python programs easily. Uses GDB to inject code.
Remote process inspector (using an active component, a thread). This was renamed to ispyd and marked abandoned by the author in 2020
Sweet and creamy print debugging -- inspect variables, expressions, and code execution with a single, simple function call.
Graphical Python debugger which lets you easily view the values of all evaluated expressions
Provides two utilities: show: a lightweight function that prints name and value of your variable(s) to the console, and peep: featured, interactive interface for data inspection.
Never use print for debugging again. PySnooper is a poor man's debugger. If you can't use a real debugger for some reason or other, and you're resorting to adding print statements to your code, this is for you. Add just one decorator line to your functions, and you get a complete log of all the lines that ran in the function and all the variables that were changed.
Unix, Windows, Mac OS X
Trace and visualize your function execution on a graphical UI, with filters and arbitrary data logging support. Featured with a virtual debugger like pdb to debug your log of execution
Python Step-by-Step Online Debugger
Web-browser
Records step-by-step execution of a Python program. Shows values of local variables in a table with ability to select every step. Works in a web-browser. Supports Python 3.12.