internal SymbolResolveDialog(TraceListItem trace, Options options) { InitializeComponent(); m_Options = options; m_Item = trace; m_Replay = new TraceReplayStateful(trace.FileName); }
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); }
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); }
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; }
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; }
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; }