* 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
Fix#1605: Debuggee process lifetime management
Mitigate #1637: log.exception() doesn't capture the full stack
Handle "launch" request, parse and validate the debug configuration, and spawn the debuggee process with debug server.
Track debuggee process and its subprocesses, and kill them as needed.
Refactor Singleton and ThreadSafeSingleton to allow for easier synchronization between IDE and server message handlers without excessive locking.
Fix various corner cases and race conditions in disconnect scenarios.
Make log.exception() log the calling stack, not just the exception stack.
Add JSON property validation to MessageDict.
Add --log-stderr switch to the server to enable full logging to stderr.
Add --cls switch to the adapter to reset terminal before logging anything (for convenience when debugging it).
Add some printf-debugging helpers.
* Add new JSON IPC implementation to be shared between the product and the tests.
Add pytest-based test support, and wire it up to setup.py and Travis.
Dial pylint down to complain about important things only.
Various minor fixes exposed by pylint.
Add basic .vscode/settings.json for linter settings (and anything else that's workspace-specific).
Fixes#831.