public virtual IAsyncResult BeginStartDebugger(AsyncCallback callback, object state)
        {
            var ar    = new StartDebuggerAsyncResult(callback, state);
            var cmdAr = BeginExecuteCommand("start debugger: sdb", true, StartDebugger_GotTransport, ar);

            ar.RunningCommand = cmdAr;
            return(ar);
        }
 void StartDebugger_SetRunningCommand(StartDebuggerAsyncResult ar, IAsyncResult command)
 {
     lock (ar) {
         if (!ar.Cancelled)
         {
             ar.RunningCommand = command;
             return;
         }
         ar.RunningCommand = null;
     }
     CancelExecuteCommand(command);
 }