예제 #1
0
        public void CreateChildNodes(ThingInMemory thingInMemories, Color elementColor, bool bCreateInGrid = true)
        {
            ProfilerNodeObjectInfo info = new ProfilerNodeObjectInfo();

            info.id        = 0;
            info.text      = thingInMemories.caption;
            info.memObject = thingInMemories;
            ProfilerNode objectInfoNode = new ProfilerNode(info, _unpackedCrawl, parent, false, this);

            objectInfoNode.linkColor = elementColor;
            parent.CreateObjectInfoNode(objectInfoNode, windowRect.x, windowRect.y, bCreateInGrid);
        }
예제 #2
0
        public void CreateNode(ThingInMemory memData, CrawledMemorySnapshot unpackedCrawl)
        {
            if (_unpackedCrawl == null)
            {
                _unpackedCrawl = unpackedCrawl;
            }
            ProfilerNodeObjectInfo info = new ProfilerNodeObjectInfo();

            info.memObject = memData;
            ProfilerNode objectInfoNode = new ProfilerNode(info, _unpackedCrawl, this, true, null);

            CreateObjectInfoNode(objectInfoNode);
        }
        public ProfilerNode(ProfilerNodeObjectInfo info, CrawledMemorySnapshot newUnpackedCrawl, ProfilerNodeView newParent, bool createChildNodes, ProfilerNode newPrevNode)
        {
            myInfo            = info;
            nodeTitle         = myInfo.memObject.caption;
            _unpackedCrawl    = newUnpackedCrawl;
            parent            = newParent;
            bCreateChildNodes = createChildNodes;
            prevNode          = newPrevNode;

            _shortestPathToRootFinder = new ShortestPathToRootFinder(_unpackedCrawl);
            _primitiveValueReader     = new PrimitiveValueReader(_unpackedCrawl.virtualMachineInformation, _unpackedCrawl.managedHeap);
            _shortestPath             = _shortestPathToRootFinder.FindFor(info.memObject);
        }