コード例 #1
0
        internal SymbolResolveDialog(TraceListItem trace, Options options)
        {
            InitializeComponent();

            m_Options = options;
            m_Item    = trace;
            m_Replay  = new TraceReplayStateful(trace.FileName);
        }
コード例 #2
0
    internal SymbolResolveDialog(TraceListItem trace, Options options)
    {
      InitializeComponent();

      m_Options = options;
      m_Item = trace;
      m_Replay = new TraceReplayStateful(trace.FileName);

    }
コード例 #3
0
        object ITraceFileHandler.OnRecordingStarted(string filename, TraceMeta meta, TraceRecorder recorder)
        {
            var item = new TraceListItem(filename, meta, recorder);

            this.Invoke((Action) delegate()
            {
                m_TraceItems.Add(item);
                m_TraceList.SetObjects(m_TraceItems);
            });
            return(item);
        }
コード例 #4
0
ファイル: HeapWindow.cs プロジェクト: dsullins/ig-memtrace
        internal HeapWindow(TraceListItem trace_info, Options options)
        {
            m_Options = options;
            m_Trace   = new TraceReplayStateful(trace_info.FileName);

            InitializeComponent();

            InitTree();

            InitFragmentationView();

            // Set window title.
            Text = String.Format("{0} ({2} - {1:n0} events) - MemTrace Heap View", Path.GetFileName(m_Trace.FileName), m_Trace.MetaData.EventCount, m_Trace.MetaData.PlatformName);
        }
コード例 #5
0
        private void ScanTraceDirectory()
        {
            HashSet <string> paths = new HashSet <string>();

            for (int i = 0; i < m_TraceItems.Count;)
            {
                var item = m_TraceItems[i];
                if (item.Status == TraceStatus.Ready && !Path.Equals(Path.GetDirectoryName(item.FileName), m_Options.TraceDirectory))
                {
                    m_TraceItems.RemoveAt(i);
                }
                else
                {
                    paths.Add(item.FileName.ToLowerInvariant());
                    ++i;
                }
            }

            foreach (var fn in Directory.GetFiles(m_Options.TraceDirectory, "*.mtrace", SearchOption.TopDirectoryOnly))
            {
                if (paths.Contains(fn.ToLowerInvariant()))
                {
                    continue; // Skip files being recorded already
                }
                try
                {
                    using (var replay = new TraceReplayStateful(fn))
                    {
                        var item = new TraceListItem(fn, replay.MetaData, null);
                        m_TraceItems.Add(item);
                    }
                }
                catch (Exception ex)
                {
                    if (DialogResult.Yes == MessageBox.Show(this, "Failed to open " + fn + "\n\n" + ex.Message + "\n\nDelete it?", "Error", MessageBoxButtons.YesNo))
                    {
                        try
                        {
                            File.Delete(fn);
                        }
                        catch (IOException)
                        {
                        }
                    }
                }
            }

            m_TraceList.SetObjects(m_TraceItems);
            m_TraceFileLabel.Text = "Trace Files in " + m_Options.TraceDirectory;
        }
コード例 #6
0
ファイル: HeapWindow.cs プロジェクト: corefan/ig-memtrace
    internal HeapWindow(TraceListItem trace_info, Options options)
    {
      m_Options = options;
      m_Trace = new TraceReplayStateful(trace_info.FileName);

      InitializeComponent();

      InitTree();

      InitFragmentationView();

      // Set window title.
      Text = String.Format("{0} ({2} - {1:n0} events) - MemTrace Heap View", Path.GetFileName(m_Trace.FileName), m_Trace.MetaData.EventCount, m_Trace.MetaData.PlatformName);
    }
コード例 #7
0
ファイル: MainWindow.cs プロジェクト: corefan/ig-memtrace
    private void ScanTraceDirectory()
    {
      HashSet<string> paths = new HashSet<string>();

      for (int i = 0; i < m_TraceItems.Count; )
      {
        var item = m_TraceItems[i];
        if (item.Status == TraceStatus.Ready && !Path.Equals(Path.GetDirectoryName(item.FileName), m_Options.TraceDirectory))
        {
          m_TraceItems.RemoveAt(i);
        }
        else
        {
          paths.Add(item.FileName.ToLowerInvariant());
          ++i;
        }
      }

      foreach (var fn in Directory.GetFiles(m_Options.TraceDirectory, "*.mtrace", SearchOption.TopDirectoryOnly))
      {
        if (paths.Contains(fn.ToLowerInvariant()))
          continue; // Skip files being recorded already

        try
        {
          using (var replay = new TraceReplayStateful(fn))
          {
            var item = new TraceListItem(fn, replay.MetaData, null);
            m_TraceItems.Add(item);
          }
        }
        catch (Exception ex)
        {
          if (DialogResult.Yes == MessageBox.Show(this, "Failed to open " + fn + "\n\n" + ex.Message + "\n\nDelete it?", "Error", MessageBoxButtons.YesNo))
          {
            try
            {
              File.Delete(fn);
            }
            catch (IOException)
            {
            }
          }
        }

      }

      m_TraceList.SetObjects(m_TraceItems);
      m_TraceFileLabel.Text = "Trace Files in " + m_Options.TraceDirectory;
    }
コード例 #8
0
ファイル: MainWindow.cs プロジェクト: corefan/ig-memtrace
 object ITraceFileHandler.OnRecordingStarted(string filename, TraceMeta meta, TraceRecorder recorder)
 {
   var item = new TraceListItem(filename, meta, recorder);
   this.Invoke((Action)delegate()
     {
       m_TraceItems.Add(item);
       m_TraceList.SetObjects(m_TraceItems);
     });
   return item;
 }