Ejemplo n.º 1
0
        public void Refresh()
        {
            r_rootNode.Text = r_manager.ApplicationName;
            ThreadStackManager tsm = r_manager.ThreadStackManager;

            r_deadLocksNode.Refresh();
            r_processNode.Refresh(tsm.ThreadStackMap);
        }
Ejemplo n.º 2
0
        public void Refresh()
        {
            r_rootNode.Text = r_manager.ApplicationName;
            ThreadStackManager tsm = r_manager.ThreadStackManager;

            r_deadLocksNode.Refresh(tsm.DeadLocks);
            r_appDomainsNode.Refresh(tsm.ThreadStacks);
        }
 internal void Refresh(ThreadStackManager manager, Process2 process, Dictionary <int, String> threadNames)
 {
     try
     {
         r_nodeview.Refresh(manager, process, threadNames);
     }
     catch (Exception e)
     {
         Refresh(e);
     }
 }
 public void Refresh(ThreadStackManager manager, IDebugProcess process, Dictionary<int, String> threadNames)
 {
     try
     {
         r_nodeview.Refresh(manager, process, threadNames);
     }
     catch (Exception e)
     {
         Refresh(e);
     }
 }
        private void Go()
        {
            string                   strProcessId = toolStripProcessId.Text;
            int                      nProcessId   = int.Parse(strProcessId);
            Process                  process      = Process.GetProcessById(nProcessId);
            DebugProcess             dp           = new DebugProcess(process);
            Dictionary <int, String> names        = new Dictionary <int, string>();
            ClrWaitSnapshot          wss          = new ClrWaitSnapshot(process);
            ThreadStackManager       tsm          = wss.Initialize();

            Refresh(tsm, dp, names);
        }
        public ThreadStackNodeManager(TreeView treeview, String appName)
        {
            if (treeview == null)
                throw new ArgumentNullException("treeview");

            if (appName == null)
                throw new ArgumentNullException("appName");

            _appName = appName;
            r_treeview = treeview;
            _hexValues = true;
            _moduleNames = true;
            _lineNumbers = true;
            _offsets = true;
            _tsm = null;
        }
        public void Refresh(ThreadStackManager manager, IDebugProcess process, Dictionary <int, String> threadNames)
        {
            _tsm = manager;
            //_procInfo = process;
            _appName     = process.Name;
            _threadNames = threadNames; // seems to hang if we iterate the threads object here


            if (_rootNodeNew == null)
            {
                _rootNodeNew = new RootNode(this, r_treeview);
            }
            else
            {
                _rootNodeNew.Refresh();
            }
        }
Ejemplo n.º 8
0
        static void Main(string[] args)
        {
            Console.WriteLine("ClrInspector at work...");

            ProcessStartInfo psi = new ProcessStartInfo(@"C:\Tools\sscli\ClrAddin\ClrTestApp\bin\Debug\ClrTestApp.exe");

            Process process = Process.Start(psi);

            Thread.Sleep(5000);

            Dac dac = new Dac(process);
            ThreadStackManager tsm = dac.ConstructThreadStacks();


            Console.ReadLine();
            process.Kill();
        }
        public ThreadStackNodeManager(TreeView treeview, String appName)
        {
            if (treeview == null)
            {
                throw new ArgumentNullException("treeview");
            }

            if (appName == null)
            {
                throw new ArgumentNullException("appName");
            }

            _appName     = appName;
            r_treeview   = treeview;
            _hexValues   = true;
            _moduleNames = true;
            _lineNumbers = true;
            _offsets     = true;
            _tsm         = null;
        }
        private void ProcessBreakMode()
        {
            try
            {
                Process2 process = (Process2)r_dte.Debugger.DebuggedProcesses.Item(1);

                Dictionary <int, String> threadNames = new Dictionary <int, string>();
                Threads threads = process.Threads;
                int     count   = threads.Count;
                for (int i = 1; i <= count; ++i)
                {
                    Thread thread = threads.Item(i);
                    int    id     = thread.ID;
                    String name   = thread.Name;
                    threadNames.Add(id, name);
                }

                int procid = process.ProcessID;
                System.Diagnostics.Process proc = System.Diagnostics.Process.GetProcessById(procid);

                using (Dac dac = new Dac(proc))
                {
                    ThreadStackManager  man    = dac.ConstructThreadStacks();
                    VisualStudioProcess vsProc = new VisualStudioProcess(process);
                    r_myControl.Refresh(man, vsProc, threadNames);
                }
            }
            catch (ExpiredException ex)
            {
                r_myControl.Refresh(ex);
            }
            catch (Exception ex)
            {
                r_myControl.Refresh(ex);
            }
        }
        public void Refresh(ThreadStackManager manager, IDebugProcess process, Dictionary<int, String> threadNames)
        {
            _tsm = manager;
            //_procInfo = process;
            _appName = process.Name;
            _threadNames = threadNames; // seems to hang if we iterate the threads object here

            if (_rootNodeNew == null)
            {
                _rootNodeNew = new RootNode(this, r_treeview);
            }
            else
            {
                _rootNodeNew.Refresh();
            }
        }