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 IDE 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 will happen through unmodified stdin instead of within the Debug Probe, even though command output will still appear there.