void showSnapshotInfo()
        {
            MemUtil.LoadSnapshotProgress(0.01f, "creating Crawler");

            _packedCrawled = new Crawler().Crawl(_SnapshotChunks[_selectedSnapshot].unPacked);
            MemUtil.LoadSnapshotProgress(0.7f, "unpacking");

            _unpackedCrawl = CrawlDataUnpacker.Unpack(_packedCrawled);
            MemUtil.LoadSnapshotProgress(1.0f, "done");

            if (_selectedSnapshot >= 1)
            {
                MemSnapshotInfo preSnapShotChunk = _SnapshotChunks[_selectedSnapshot - 1];
                if (preSnapShotChunk != null)
                {
                    MemUtil.LoadSnapshotProgress(0.01f, "creating Crawler");

                    var tempCrawled = new Crawler().Crawl(preSnapShotChunk.unPacked);
                    MemUtil.LoadSnapshotProgress(0.7f, "unpacking");

                    _preUnpackedCrawl = CrawlDataUnpacker.Unpack(tempCrawled);
                    MemUtil.LoadSnapshotProgress(1.0f, "done");
                }
            }
            else
            {
                _preUnpackedCrawl = null;
            }
            _inspector = new Inspector(this, _unpackedCrawl);
            NetManager.Instance.RegisterCmdHandler(eNetCmd.SV_QueryStacksResponse, Handle_QueryStacksResponse);
            RefreshCurrentView();
            Repaint();
        }
Exemplo n.º 2
0
    public void AddSnapshot(PackedMemorySnapshot packed)
    {
        TrackerMode_Base curMode = GetCurrentMode();

        if (curMode == null)
        {
            return;
        }

        var snapshotInfo = new MemSnapshotInfo();

        if (!snapshotInfo.AcceptSnapshot(packed))
        {
            return;
        }

        curMode.AddSnapshot(snapshotInfo);

        if (AutoSaveOnSnapshot)
        {
            if (!curMode.SaveSessionInfo(packed, snapshotInfo.Unpacked))
            {
                Debug.LogErrorFormat("Save Session Info Failed!");
            }
        }
    }
        void OnSnapshotReceived(PackedMemorySnapshot snapshot)
        {
            _snapshot = snapshot;
            var snapshotInfo = new MemSnapshotInfo();

            snapshotInfo.setSnapShotTime(Time.realtimeSinceStartup);
            snapshotInfo.setSnapshotPacked(_snapshot);

            _SnapshotOptions.Add(_SnapshotChunks.Count.ToString());
            _SnapshotChunks.Add(snapshotInfo);

            _selectedSnapshot = _SnapshotChunks.Count - 1;
            showSnapshotInfo();
        }
Exemplo n.º 4
0
    public void AddSnapshot(PackedMemorySnapshot packed)
    {
        try
        {
            TrackerMode_Base curMode = GetCurrentMode();
            if (curMode == null)
            {
                Debug.LogErrorFormat("AddSnapshot() failed. (invalid mode: {0})", curMode);
                return;
            }

            Debug.Log("saving snapshot...");
            if (AutoSaveOnSnapshot)
            {
                if (!curMode.SaveSessionInfo(packed))
                {
                    Debug.LogErrorFormat("Save Session Info Failed!");
                }
            }

            Debug.Log("accepting snapshot...");
            var snapshotInfo = new MemSnapshotInfo();
            if (!snapshotInfo.AcceptSnapshot(packed))
            {
                Debug.LogError("AcceptSnapshot() failed.");
                return;
            }

            Debug.Log("appending snapshot...");
            curMode.AddSnapshot(snapshotInfo);

            //Debug.Log("saving snapshot...");
            if (AutoSaveOnSnapshot)
            {
                if (!curMode.SaveSessionJson(snapshotInfo.Unpacked))
                {
                    Debug.LogErrorFormat("Save Session Json Failed!");
                }
            }

            Debug.Log("appending snapshot. (done)");
        }
        catch (Exception ex)
        {
            Debug.LogException(ex);
        }
    }
Exemplo n.º 5
0
    public void LoadFile()
    {
        string pathName = EditorUtility.OpenFilePanel("Load Snapshot File", MemUtil.SnapshotsDir, "");

        if (string.IsNullOrEmpty(pathName))
        {
            return;
        }

        object packed = null;

        try
        {
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            var fileName = pathName;
            if (fileName.EndsWith(".memsnap"))
            {
                using (Stream stream = File.Open(fileName, FileMode.Open))
                {
                    packed = bf.Deserialize(stream);
                }
            }
        }
        catch (Exception ex)
        {
            Debug.LogError(string.Format("load snapshot error ! msg ={0}", ex.Message));
            return;
        }

        if (packed != null)
        {
            Clear();

            MemSnapshotInfo memInfo = new MemSnapshotInfo();
            if (memInfo.AcceptSnapshot(packed as PackedMemorySnapshot))
            {
                _snapshots.Add(memInfo);
            }

            RefreshIndices();
            _selected = _snapshots.Count - 1;
        }
    }
    public bool saveSnapshotJson(int fileName, MemSnapshotInfo snapshotInfos)
    {
        try
        {
            string jsonPath = Path.Combine(_basePath, "json");
            var    jsonDir  = new DirectoryInfo(jsonPath);
            if (!jsonDir.Exists)
            {
                jsonDir.Create();
            }

            string jsonFile = Path.Combine(jsonPath, fileName + ".json");
            return(savePackedInfoByJson(jsonFile, snapshotInfos.unPacked));
        }
        catch (Exception ex)
        {
            Debug.LogException(ex);
            return(false);
        }
    }
Exemplo n.º 7
0
    public void AddSnapshot(MemSnapshotInfo snapshot)
    {
        _snapshots.Add(snapshot);
        _selected = _snapshots.Count - 1;

        RefreshIndices();

        // automatically compare the last two, when new snapshot comes
        if (_snapshots.Count > 1)
        {
            _1st = _selected - 1;
            _2nd = _selected;
            UpdateMarkButtonTexts();
        }

        if (_owner != null)
        {
            _owner.ChangeSnapshotSelection();
        }
    }
        void addNewSnapshot()
        {
            MemUtil.LoadSnapshotProgress(0.01f, "creating Crawler");

            _packedCrawled = new Crawler().Crawl(_snapshot);
            MemUtil.LoadSnapshotProgress(0.7f, "unpacking");

            _unpackedCrawl = CrawlDataUnpacker.Unpack(_packedCrawled);
            MemUtil.LoadSnapshotProgress(1.0f, "done");

            var snapshotInfo = new MemSnapshotInfo();

            snapshotInfo.setSnapShotTime(Time.realtimeSinceStartup);
            snapshotInfo.setSnapshotPacked(_unpackedCrawl);

            _SnapshotOptions.Add(_SnapshotChunks.Count.ToString());
            _SnapshotChunks.Add(snapshotInfo);

            _selectedSnapshot = _SnapshotChunks.Count - 1;
        }
        void showSnapshotInfo()
        {
            var curSnapShotChunk = _SnapshotChunks[_selectedSnapshot];

            _unpackedCrawl = curSnapShotChunk.unPacked;
            if (_selectedSnapshot >= 1)
            {
                MemSnapshotInfo preSnapShotChunk = _SnapshotChunks[_selectedSnapshot - 1];
                if (preSnapShotChunk != null)
                {
                    _preUnpackedCrawl = preSnapShotChunk.unPacked;
                }
            }
            else
            {
                _preUnpackedCrawl = null;
            }

            _inspector = new Inspector(this, _unpackedCrawl);
            RefreshCurrentView();
        }
Exemplo n.º 10
0
    public void LoadSession()
    {
        string pathName = EditorUtility.OpenFolderPanel("Load Snapshot Folder", MemUtil.SnapshotsDir, "");

        if (string.IsNullOrEmpty(pathName))
        {
            return;
        }

        List <object> packeds = new List <object>();

        try
        {
            DirectoryInfo TheFolder = new DirectoryInfo(pathName);
            if (!TheFolder.Exists)
            {
                throw new Exception(string.Format("bad path: {0}", TheFolder.ToString()));
            }

            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            foreach (var file in TheFolder.GetFiles())
            {
                var fileName = file.FullName;
                if (fileName.EndsWith(".memsnap"))
                {
                    using (Stream stream = File.Open(fileName, FileMode.Open))
                    {
                        packeds.Add(bf.Deserialize(stream));
                    }
                }
            }

            if (packeds.Count == 0)
            {
                MemUtil.NotifyError("no snapshots found.");
                return;
            }
        }
        catch (Exception ex)
        {
            Debug.LogError(string.Format("load snapshot error ! msg ={0}", ex.Message));
            return;
        }

        Clear();

        foreach (var obj in packeds)
        {
            MemSnapshotInfo memInfo = new MemSnapshotInfo();
            if (memInfo.AcceptSnapshot(obj as PackedMemorySnapshot))
            {
                _snapshots.Add(memInfo);
            }
        }

        if (_snapshots.Count == 0)
        {
            MemUtil.NotifyError("empty snapshot list, ignored.");
            return;
        }

        RefreshIndices();
        _selected = _snapshots.Count - 1;
    }