// Detach is called when debugging is stopped and the process was attached to (as opposed to launched) // or when one of the Detach commands are executed in the UI. public int Detach() { Debug.Assert(Worker.MainThreadId == Worker.CurrentThreadId); m_breakpointManager.ClearBoundBreakpoints(); m_pollThread.RunOperation(new Operation(delegate { m_debuggedProcess.Detach(); })); return(Constants.S_OK); }