Wing alters the I/O environment in order to make it possible to keep the debug process responsive while waiting for I/O. This code mimics the environment found outside of the debugger, so any code that uses only Python-level I/O does not need to worry about this change of environment.

There are however several cases that can affect users that bypass Python-level I/O by doing C/C++ level I/O from within an extension module:

If you run into a problem with keyboard I/O in Wing's debugger, you should:

  1. Turn off Wing's I/O multiplexer by setting the Use sys.stdin Wrapper preference to False.
  2. Turn on the Use External Console preference (for details see External I/O Consoles)

Once that is done, I/O should work properly in the external console, but the debug process will remain unresponsive to Pause or breakpoint commands from Wing whenever it is waiting for input, either at the C/C++ or Python level.

Also, in this case keyboard input invoked as a side effect of using the Debug Probe in Wing Pro will happen through unmodified stdin instead of within the Debug Probe, even though command output will still appear there.