When using launcher to redirect output, tell pydevd to not perform redirection.
Always propagate "output" events from the server to the IDE.
Fix test_log_point to not assume that logpoint output is strictly ordered wrt regular output.
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.
* Bunch of minor test fixes
* Fix linter and multiproc
* Remove missed os.environ
* Rename and move stop_debugging
* Add evaluate helper
* Add exit_code property
* Enable pytest and flake8 in workspace
* Fix test failure
* Set ptvsd python path in tests
* Rename exit_code to expected_exit_code
Add multiprocessing= argument to attach() and enable_attach().
Refactor common code in attach() and enable_attach().
Remove broken legacy multiproc implementation.
Ensure that all captured output is reported to the IDE before reporting process exit.
Correctly report "process", "exited", and "terminated" events for "noDebug".
Don't treat partial message reads as fatal error.
Switch test_nodebug to "internalConsole", so that it can properly produce "output" events.
Expect failure response from "setBreakpoints" in test_nodebug.
Fix environment dict being shared between subsequent test runs, causing spurious enable_attach() in debuggee.
Fix ordering in debuggee and adapter cleanup in debug.Session.
Fix launcher.py on Python 2.7
Move docstrings to top-level package, and update them to reflect the current behavior.
Remove unused code in ptvsd.common.log.
Move sys.path/prefix/site_packages logging into ptvsd.common.log, and log it from adapter and server to the same level of detail as the tests.
Fix injected code snipped for attach-by-PID.
Fix some Unicode issues in adapter and tests.
Refactor Timeline, debug.Session, and start methods.
* noDebug mode support
* Ensure we get the debuggee pid on launch
* Fix state change bug
* Tweaking pid retreival
* Use makefile and simplify pid retreival
* Addressing comments
* Run formatter
* Change name common.socket to common.sockets
* Add some timeouts
* Fix linter
Encode environment variables on Python 2.
Fix#1659: Debuggee output breaks adapter with "internalConsole"
Use os.devnull for debuggee stdin, and redirect debuggee stdout to stderr.
Capture output for debuggee stdout and stderr, generate DAP "output" events from it, and suppress the same coming from the debug server.
* Initial fix for launch
* Minor fixes
* Succesful launch tests
* More launch test fixes
* Some bit of cleanup
* Fix linter
* More cleanup
* Attach using import
* Fix circular importing
* Support attach via command line
* Backchannel and Other test fixes
* Linter fix
* Python path fix in test
* Fix lint after rebase
* Support exitCode in tests
* More fixes after rebase
* Fix expected exit code
* Remove changes to MessageDict __call__
* Remove hold subprocess event
Separate message parsing and message handling into separate threads.
Remove nested message handling in request handlers via `yield`, since it is incompatible with the new split model, and replace it with NO_RESPONSE and Request.respond() to defer responses until later.
Change Message.cant_handle() and Message.isnt_valid() to respond to the request and return the exception, instead of raising it, to accommodate NO_RESPONSE scenarios where a failure needs to be reported later.
Fix#1678: Do not rely on "processId" being returned by "runInTerminal" request
Extract debuggee PID from the "process" event sent by the debug server.
Fix#1679: "exited" event sometimes reports "exitCode": null
Report it as -1 if it cannot be retrieved from the debuggee process.
Fix#1680: Fatal errors in message loop do not fail fast
os._exit() immediately if a fatal error occurs in message parsing or message handling background threads.