Interactive Debug Probe
The Debug Probe acts like the Python Shell for evaluating and executing arbitrary Python code in the context of a debug program. This acts on the current debug stack frame, and is available only when the debug program is paused.
You may use many of Wing's source editor commands and key bindings within the Debug Probe, and can use the up/down arrow keys to traverse a history of recently typed commands.
Like the Python Shell, the Debug Probe in Wing provides auto-completion and integrates with the Source Assistant so that documentation and call signatures are readily available for functions and methods that are invoked here. Goto-definition works here as well.
This makes the Debug Probe particularly useful, not just to find and understand bugs, but also in crafting and trying out new code to fix the bug.
Even when no bugs are present, the Debug Probe can be used to craft code quickly in the live context in which it is intended to work. To do this, set a breakpoint where you plan to place the code, debug until you reach that breakpoint, then work in the Debug Probe to design parts or all of your new code. The auto-completer and Source Assistant running in the live program context make navigation of unfamiliar or complex code quite easy, and can greatly speed up the design and implementation of new features for existing code.
Conditional breakpoints are a natural companion for the Debug Probe. Setting a conditional breakpoint makes it easier to isolate one iteration or invocation out of many, thus isolating either a problematic case for which a bug fix is needed, or a particular case for which a new feature is desired.
In the Debug Probe, the Up and Down arrow keys will traverse the history of the code you have entered and the return key will either execute the code if it is complete or prompt for another line if it is not. Ctrl-Up and Ctrl-Down will move the cursor up and down and Ctrl-Return will insert a new line character at the cursor position.