Add time.sleep() to attach_by_pid spinning loop to give the injected code a better chance to execute.
Read and log injector output to prevent it from blocking on prints.
Improve code injection logging.
Fix race between socket.accept() backchannel listener thread, and debug.Session.close().
Fix launcher not propagating debuggee exit code.
Fix attach-by-PID without explicit --log-dir overriding PTVSD_LOG_DIR (and disabling logging).
Improve test logging, with a separate directory for every test.
Various test fixes.
Fix#1721 "runInTerminal" is broken on non-Windows platforms.
Fix#1722: Output is not captured in "noDebug" with "runInTerminal"
Groundwork for #1713: adapter: multiple concurrent sessions
Move "launch" request parsing and debuggee process spawning, PID reporting and tracking, stdio "output" capture, and exit code reporting into launcher. Launcher now communicates to the adapter via a full-fledged message channel.
Refactor adapter. Add an abstraction for a debug session, and treat IDE, launcher, and debug server as separate components managed by that session.
Improve adapter logging to capture information about current debug session, and current message handler if any.
Fix reporting exceptions from message handlers.
Various test fixes.