Esempio n. 1
0
 public void EnableAutoLog(TraceProfileDescriptor profile)
 {
     lock (mutex) {
         autoLogProfile   = profile;
         IsAutoLogEnabled = true;
     }
 }
Esempio n. 2
0
 public void DisableAutoLog()
 {
     lock (mutex) {
         IsAutoLogEnabled = false;
         autoLogProfile   = null;
     }
 }
Esempio n. 3
0
        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));
 }
Esempio n. 5
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);
        }
Esempio n. 7
0
        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;
            }
        }
Esempio n. 8
0
        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);
        }