public void EnableAutoLog(TraceProfileDescriptor profile) { lock (mutex) { autoLogProfile = profile; IsAutoLogEnabled = true; } }
public void DisableAutoLog() { lock (mutex) { IsAutoLogEnabled = false; autoLogProfile = null; } }
private TraceProfileDescriptor AugmentTraceProfile( TraceProfileDescriptor descriptor, IReadOnlyList <TraceLaunchTarget> targets) { foreach (var collector in descriptor.Collectors.OfType <EventCollectorDescriptor>()) { foreach (var provider in collector.Providers) { if (provider.StartupProjects == null) { continue; } foreach (var project in provider.StartupProjects) { var target = targets.FirstOrDefault( x => string.Equals(x.ProjectPath, project, StringComparison.OrdinalIgnoreCase)); if (target != null) { if (provider.ProcessIds == null) { provider.ProcessIds = new List <uint>(); } provider.ProcessIds.Add(target.ProcessId); } } } } return(descriptor); }
public static bool IsUsable(this TraceProfileDescriptor profile) { return (profile != null && profile.Collectors.Count > 0 && profile.Collectors.OfType <EventCollectorDescriptor>().All(x => x.Providers.Count > 0)); }
private void VerifyEqual(TraceProfile expected, TraceProfileDescriptor actual) { Assert.Equal(expected.Collectors.Count, actual.Collectors.Count); for (int i = 0; i < expected.Collectors.Count; ++i) { VerifyEqual((dynamic)expected.Collectors[i], (dynamic)actual.Collectors[i]); } }
public static TraceProfileDescriptor GetDescriptor(this TraceProfile activeProfile) { var d = new TraceProfileDescriptor(); foreach (var collector in activeProfile.Collectors) { if (collector is EventCollector ec) { d.Collectors.Add(GetDescriptor(ec)); } } return(d); }
private void LoadAmbientSettings() { ambientStore = settings.GetAmbientStore().AsWrapper(); IsFilterEnabled = ambientStore.IsFilterEnabled; traceProfile = GetActiveProfile(ambientStore); PropagateAutoLog(); string activeViewPreset = ambientStore.ActiveViewPreset; var activePreset = AdvModel.PresetCollection.TryGetCurrentPresetByName(activeViewPreset); if (activePreset != null) { AdvModel.Preset = activePreset; } }
public async Task <EventSession> StartSessionAsync(TraceProfileDescriptor descriptor) { if (runningSession != null) { throw new InvalidOperationException("Session already in progress."); } var traceLog = new TraceLog(); var session = new EventSession(descriptor, traceLog); SessionStarting?.Invoke(traceLog); await session.StartAsync(); runningSession = session; SessionStarted?.Invoke(runningSession); return(session); }