internal CommandResult StartApplication() { SingleSteppingEngine engine = new SingleSteppingEngine (manager, this, start); initialized = true; this.main_thread = engine; engine.Thread.ThreadFlags |= Thread.Flags.StopOnExit; if (thread_hash.Contains (engine.PID)) thread_hash [engine.PID] = engine; else thread_hash.Add (engine.PID, engine); session.MainThreadGroup.AddThread (engine.Thread.ID); session.OnMainProcessCreated (this); manager.Debugger.OnMainProcessCreatedEvent (this); CommandResult result = Debugger.StartOperation (start.Session.Config.ThreadingModel, engine); return engine.StartApplication (result); }