Home » Key Features of Wing IDE »

"The debugger just works, and it works well." -- Joshua J. Kugler

Wing's multithread-capable debugger can work with all forms of Python code, whether launched from the IDE, externally by a web server, run as a script in an embedded copy of Python, or run on a remote host. The debugger works with many Python versions and also includes special support for Zope, Plone, and Django, and it can be used with Turbogears, wxPython, and many other libraries.

Catch Exceptions and Set Breakpoints
Screencast: Catch Exceptions and Set Breakpoints (1:03) Wing will stop the debug process and report unhandled exceptions as they occur in your code. Breakpoints can also be set to stop execution of the debug process. Wing supports regular and conditional breakpoints, and allows enabling/disabling breakpoints or ignoring them for a selected number of hits. A breakpoint manager provides an overview and easy way to jump to the code where breakpoints have been set. Conditional breakpoints can be very convenient in isolating the particular cases that bring out a bug in code before the exception actually occurs, even if that code is executed many times before your problem case is reached.
Step Through Code and Inspect Data
Screencast: Step Through Code and Inspect Data (1:22) Once the debug process stops at a breakpoint or exception, the debugger allows stepping through code one line a time, optionally into a call or out of the current stack frame. While the debugger is paused, hovering the mouse over a symbol on the source editor will display the current value of that symbol in the debug process, when it is defined. The Stack Data tool provides a graphical way to view local and global data. Wing IDE also provides a module data view and a tool for watching values and expressions. Values can be watched by symbolic name or by object reference. Watching a value by object reference is a convenient way to keep it handy even after leaving the scope where it was bound to a symbol. Data displayed in the GUI in Wing can be changed, causing the value to be updated within the debug process.
Interactive Debug Probe
Screencast: Debug Probe (1:19) The Debug Probe allows running interactive Python commands, with auto-completion and call tips, in the context of the current stack frame in your paused debug process. This tool is unmatched for complex debugging, and a great way to try out code in context while crafting a bug fix. Wing also uses live runtime state to fuel auto-completion and call tips in the editor, when the code is on an active stack frame.
Debugging Remotely
Screencast: Debugging Remotely (0:51) Wing provides a module that can be imported into any Python code to initiate debugging with the IDE. This allows debugging code that is running within a web server or web framework, and code in a Python interpreter that has been embedded into a larger application. It is also possible to configure a debug process to connect over the network to another machine where Wing IDE is running.
New in 4.x Debug Django Templates
Screencast: Debug Django Templates (1:02) Wing IDE can stop at breakpoints and then step through Django Template files. While debugging a Django Template file, the Stack Data and other debugger tools work within the template's runtime context. Being able to see the debug position within the Django template files, rather than working with Python frames in the Django template engine implementation, makes it easier to understand and debug template invocations.
New in 4.x Matplotlib Support
Screencast: Matplotlib Support (0:57) Wing's debugger also includes special support for matplotlib, so that plots update when working interactively in the Python Shell or in the Debug Probe while the debug process is paused.

« 2. Wing IDE Python EditorKey Features of Wing IDE4. Version Control with Wing IDE »

Wing IDE Python Debugger