Ejemplo n.º 1
0
        void Update()
        {
            if (tree.IsRealized)
            {
                tree.ScrollToPoint(0, 0);
            }

            treeViewState.Save();

            store.Clear();

            try {
                if (DebuggingService.GetSessions().SelectMany(s => s.GetProcesses()).Count() > 1)
                {
                    foreach (var session in DebuggingService.GetSessions())
                    {
                        foreach (var process in session.GetProcesses())
                        {
                            var iter = store.AppendValues(
                                session.IsRunning ? "md-continue-debug" : "md-pause-debug",
                                process.Id.ToString(),
                                process.Name,
                                process,
                                session == DebuggingService.DebuggerSession ? (int)Pango.Weight.Bold : (int)Pango.Weight.Normal,
                                "",
                                session);
                            if (session.IsRunning)
                            {
                                continue;
                            }
                            AppendThreads(iter, process, session);
                        }
                    }
                }
                else
                {
                    if (!DebuggingService.IsPaused)
                    {
                        return;
                    }
                    AppendThreads(TreeIter.Zero, DebuggingService.DebuggerSession.GetProcesses() [0], DebuggingService.DebuggerSession);
                }
            } catch (Exception ex) {
                LoggingService.LogInternalError(ex);
            }

            tree.ExpandAll();

            treeViewState.Load();
        }