Child process watchdog for tests #1555
Issues like #1552 can be hard to diagnose, because unrelated tests fail because ptvsd from an older failed test is still around. We need some way to clean those up, so that test reports only contain relevant failures.
We have previously done so by using a process watchdog - in fact, it is still there in watchdog.py. The idea is to have a process external to the test worker, which monitors said worker, and kills any debuggee processes that are left around after the worker exits.
This worked, but we disabled it for perf reasons. It was a naive implementation that used one watchdog per
We need to fix the watchdog such that it's a single process per test worker. The watchdog should communicate with the test worker and receive PIDs for new child processes spawned by