예제 #1
0
 static public void Break()
 {
     if (IsRunning)
     {
         MessageQueue.AddCommand("break");
     }
 }
예제 #2
0
 static public void GoToThread(string threadId)
 {
     if (IsRunning)
     {
         MessageQueue.AddCommand("gotothread|" + threadId);
     }
 }
예제 #3
0
 static public void GoToFrame(string frameId)
 {
     if (IsRunning)
     {
         MessageQueue.AddCommand("gotoframe|" + frameId);
     }
 }
예제 #4
0
 static public void SetInstructionPointer(int line)
 {
     if (IsRunning)
     {
         MessageQueue.AddCommand("setip " + line);
     }
 }
예제 #5
0
 static public void StepOver()
 {
     if (IsRunning)
     {
         MessageQueue.AddCommand("next");
         IsInBreak = false;
     }
 }
예제 #6
0
 static public void StepIn()
 {
     if (IsRunning)
     {
         MessageQueue.AddCommand("step");
         IsInBreak = false;
     }
 }
예제 #7
0
 static public void Go()
 {
     if (IsRunning)
     {
         MessageQueue.AddCommand("go");
         IsInBreak = false;
     }
 }
예제 #8
0
 static public void Run(string application, string args = null)
 {
     if (string.IsNullOrEmpty(args))
     {
         MessageQueue.AddCommand(string.Format("mo nc on\nrun \"{0}\"", application));
     }
     else
     {
         MessageQueue.AddCommand(string.Format("mo nc on\nrun \"{0}\" {1}", application, args));
     }
 }
예제 #9
0
 static public void SendSettings(bool breakOnException)
 {
     if (IsRunning)
     {
         MessageQueue.AddCommand(NppCategory.Settings + string.Format(
                                     "breakonexception={0}|maxItemsInTooltipResolve={1}|maxItemsInResolve={2}",
                                     breakOnException.ToString().ToLower(),
                                     Config.Instance.CollectionItemsInTooltipsMaxCount,
                                     Config.Instance.CollectionItemsInVisualizersMaxCount));
     }
 }
예제 #10
0
        static public void Exit()
        {
            MessageQueue.AddCommand(NppCommand.Exit); //this will shutdown the channels

            if (IsRunning)
            {
                HandleErrors(() => Process.GetProcessById(debuggerProcessId).Kill());
                HandleErrors(() => Process.GetProcessById(debuggeeProcessId).Kill());
            }

            debuggeeProcessId     =
                debuggerProcessId = 0;
        }
예제 #11
0
        public static string BeginInvoke(string command, string args, Action <string> resultHandler)
        {
            //<id>:<command>:<args>
            string id = GetNextInvokeId();

            lock (invokeCompleteHandlers)
            {
                invokeCompleteHandlers.Add(id, resultHandler);
            }
            // Debug.WriteLine("Invoke send: " + id + "; " + string.Format("{0}:{1}:{2}", id, command, args ?? ""));
            MessageQueue.AddCommand(NppCategory.Invoke + string.Format("{0}:{1}:{2}", id, command, args ?? ""));
            return(id);
        }
예제 #12
0
        private static void WaitForExit(Process debugger)
        {
            debugger.WaitForExit();

            debuggeeProcessId     =
                debuggerProcessId = 0;

            MessageQueue.AddCommand(NppCommand.Exit);

            if (OnDebuggerStateChanged != null)
            {
                OnDebuggerStateChanged();
            }

            MessageQueue.AddNotification(NppCategory.Diagnostics + debugger.Id + ":STOPPED");
        }
예제 #13
0
 public void Stop()
 {
     MessageQueue.AddCommand(NppCommand.Exit);
 }
예제 #14
0
 static public void Attach(int proccess)
 {
     MessageQueue.AddCommand("attach " + proccess);
 }
예제 #15
0
 static public void RemoveWatchExpression(string expression)
 {
     MessageQueue.AddCommand("watch-|" + expression);
 }
예제 #16
0
 static protected void AddWatchExpression(string expression)
 {
     MessageQueue.AddCommand("watch+|" + expression);
 }
예제 #17
0
 static public void RemoveBreakpoint(string fileLineInfo)
 {
     MessageQueue.AddCommand("breakpoint-|" + fileLineInfo);
 }