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.
- better propagation of messages and errors
- implicit error handling for invalid messages
- fix various issues related to disconnecting
Fix messaging tests.
Separate formatter from logging for reuse.
Add more Python 2/3 compatibility helpers.
* Fix#1090: Port refactored command line parser to master
* Fix#921: Double dash in program arguments gets caught and crashes pydevd
* Fix#1013: -h/--help arg to program instead shows help for interpreter
Allow launching ptvsd as script rather than as a module.
Use script mode in multiproc implementation, and in tests, to avoid explicit PYTHONPATH manipulation.
* 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.
* Add flake8 configuration files
- .flake8.ci: addendum config for CI to make use of only.
* Add build badge for CI in VSTS
* Enable JUnit style test file output.
- convert_args return value simplified
- allow original style of unittest reporting as well
- remove unnecessary flags from junit xmlrunner
* Use argparse to collect runtime configuration of tests module