コード例 #1
0
ファイル: BacktraceViewer.cs プロジェクト: mono/heap-prof
    public BacktraceNodeStore(TimeData data, Profile p, BacktraceTabulator bt)
        : base(typeof (BacktraceNode))
    {
        this.data = data;
        this.p = p;
        this.bt = bt;

        foreach (AllocNode an in bt.type_nodes) {
            BacktraceNode n = new BacktraceNode (data, p, an);
            ProcessNode (n);
            AddNode (n);
        }
    }
コード例 #2
0
ファイル: BacktraceTabulator.cs プロジェクト: mono/heap-prof
    public AllocNode(int t, int [] bt, int bt_len, BacktraceTabulator tab)
    {
        this.type = t;
        this.bt = bt;
        this.bt_len = bt_len;
        this.tab = tab;

        tab.nodes.Add (this, this);

        if (bt_len != 0) {
            Parent = tab.LookupNode (t, bt, bt_len - 1);
            if (Parent.Children == null)
                Parent.Children = new ArrayList ();

            Parent.Children.Add (this);
        } else {
            tab.type_nodes.Add (this);
        }
    }
コード例 #3
0
ファイル: BacktraceViewer.cs プロジェクト: mono/heap-prof
    public BacktraceViewerComponent(TimeData data, Profile p)
    {
        this.data = data;
        this.p = p;
        this.bt = new BacktraceTabulator (p, p.GetContextObjsForTime (data.Time));

        Title = string.Format ("Heap at {0} ms", data.Time);

        box = new VBox ();
        box.Spacing = 12;

        this.Add (box);

        box.PackStart (CreateHeader (), false, false, 0);

        ns = new BacktraceNodeStore (data, p, bt);

        ScrolledWindow sw = new ScrolledWindow ();
        sw.Add (ns.GetNodeView ());
        box.PackStart (sw, true, true, 0);
    }