Use YAML templates for setting up Python and running tests.
Use matrix instead of separate jobs for Windows 32-bit and 64-bit runs.
Change --debugpy-logs to --debugpy-log-dir with explicit destination, and use that to capture and publish test logs in CI.
Delete logs for passed tests by default, and add --debugpy-log-passed to opt out.
An error display in output window when debug with "Windows Application" option checked.
Do not propagate debuggee's stdout and stderr to sys.stdout/stderr if the latter are missing.
Fix#2040: Code continues running after Stop Debugging
Force-kill debuggee before disconnecting from the debug server if termination was requested or implied.
Don't show the wait prompt if debuggee was explicitly terminated.
Refactor tests for wait prompt to test all possible permutations in a single test.
This commit also makes sure that unhandled exceptions raised
in libraries are shown if some frame from its stack is in user
code (when justMyCode:true).
Generate server access token in enable_attach(), propagate it to the adapter, and have the adapter authenticate to the server via "pydevdAuthorize".
Generate client access token in adapter when not spawned by server, and propagate it to pydevd.
Fix pydevd to correctly propagate access tokens for subprocesses that are not forked.
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#1901: Race between IDE and server connecting to the adapter
Use "evaluate" request without "frameId" to import ptvsd into the debuggee as soon as server attaches.
If the adapter is spawned by the server, wait for server to connect if IDE connects first.
Fix test_subprocess to use the new test API, and add a check for ptvsd being loaded in the child process.