コード例 #1
0
ファイル: MainForm.cs プロジェクト: czapek/MemoryDiagnostics
        private void walkTheHeapToolStripMenuItem_Click(object sender, EventArgs e)
        {
            List <String> managedObjects = new List <String>();

            foreach (DataGridViewRow row in dataGridViewMain.SelectedRows)
            {
                managedObjects.Add(((ManagedObject)row.DataBoundItem).ObjectName);
            }

            if (Process != null)
            {
                using (DataTarget dataTarget = DataTarget.AttachToProcess(Process.Id, dataTargetTimeOut, dataTargetAttachFlag))
                {
                    ClrInfo             clrVersion = dataTarget.ClrVersions.First();
                    ClrRuntime          runtime    = clrVersion.CreateRuntime();
                    RetentionTreeViewer r          = new RetentionTreeViewer(runtime, managedObjects);
                    r.ShowDialog(this);
                }
            }
            else
            {
                RetentionTreeViewer r = new RetentionTreeViewer(null, managedObjects);
                r.ShowDialog(this);
            }
        }
コード例 #2
0
        private void openInRetentionTreeViewerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            List <String> managedObjects = new List <String>();
            ulong         ptr            = 0;

            if (treeViewObjects.SelectedNode != null)
            {
                ptr = ((ClrTypeHelper)treeViewObjects.SelectedNode.Tag).Ptr;
            }

            RetentionTreeViewer r = new RetentionTreeViewer(runtime, ptr);

            r.Show(this);
        }