Example #1
0
        static public bool Start()
        {
            if (!initialized)
            {
                Init();
            }

            if (debuggerProcessId != 0)
            {
                return(false);
            }

            MessageQueue.Clear();

            string debuggerDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string debuggerApp = Path.Combine(debuggerDir, "mdbghost_64.exe");
            var    debugger    = Process.Start(new ProcessStartInfo
            {
                //FileName = debuggerApp,
                FileName = Path.Combine(debuggerDir, "mdbg.exe"),
                //FileName = @"c:\program files (x86)\notepad++\plugins\csscriptnpp\mdbg\mdbghost_64.exe",
                Arguments = "!load npp.dll",
                //CreateNoWindow = true,
                //UseShellExecute = false
            });

            MessageQueue.AddNotification(NppCategory.Diagnostics + debugger.Id + ":STARTED");
            debuggerProcessId = debugger.Id;

            Task.Factory.StartNew(() => WaitForExit(debugger));

            channel        = new RemoteChannelServer(debuggerProcessId);
            channel.Notify = message => Console.WriteLine(message);
            channel.Start();

            return(true);
        }