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.
* Remove wrapper and in-proc support code
* Fixing up multiproc patching
* Address comments
* Import cleanup
* More cleanup
* Remove loopback fast path
* Disable IDE disconnect unpause-ing
* Add missing file to do not trace
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 ptvsd.adapter.contract module as a single access point for capabilities and other immutable IDE and server metadata.
Change the semantics of Channels.server() to enable checks for disconnected server.
Fix "disconnect" and "terminate" handling when not connected to debug server.
Do best-effort handling of "ptvsd_systemInfo" if not connected to debug server.
Implement per-test-runner out-of-process watchdog for processes spawned by tests.
Add file logging for tests and watchdog.
Improve stdio capture in debug.Session when test fails.
Remove redundant logging in debug.Session.
Fix Flask and Django multiprocess tests.
Fix test logs not being captured by pytest.
Fix "import debug_me" check improperly applied in tests where it is unnecessary.
Fix some clarifying patterns not respecting the underlying pattern.
Add pattern helpers for strings: starting_with, ending_with, containing.
Move DAP test helpers to a separate module, and add a helper for frames.
Add support for line markers when setting breakpoints and matching frames.
Assorted test fixes around handling of Unicode and paths.
Fix various bugs around handling of disconnect in JsonIOStream and JsonMessageChannel.
Fix handling of DAP "terminated" event in debug.Session.
Add --ptvsd-logs and --pydevd-logs switches to pytest.
Improve message logging to fully capture the raw message data in the logs if deserialization fails.
Log all debuggee environment variables in debug.Session, and improve log readability.
* Update ANY to some
* Refactor breakpoint lines in tests
* Replace old import and emable debug with debug_me
* Remove unused code
* Fix some linter issues
* Change from some.such_that to some.str.such_that
* Linting with black
- 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.
Implements the main message loops for IDE and debug server communication channels, and framework for DAP message handlers.
Lays out scaffolding for debuggee process management and connectivity.
Implements generic message propagation between IDE and debug server.
Partially implements playback of the initialization sequence when debug server is connected (without validation).
Implements `initialize`, `disconnect`, and `terminate` DAP messages.
Partially implements `attach`, `launch`, and `configurationDone` DAP messages.