Exemple #1
0
        /// <summary>
        /// Breaks the process that is being debugged.
        /// </summary>
        public void BreakExecution(Process process)
        {
            using (var processSwitcher = new ProcessSwitcher(StateCache, process))
            {
                DebuggeeFlowController flowControler = debugeeFlowControlers[process.Id];
                flowControler.DebugStatusBreak.Reset();
                Control.SetInterrupt(0);
                flowControler.DebugStatusBreak.WaitOne();

                // Drop the cache.
                // TODO: When support for debugging multiple processes is added.
                //       this needs to clear the cache of all the processes.
                //
                process.InvalidateProcessCache();
            }
        }