示例#1
0
        public HeaptrackSession CreateSession(SDBDeviceInfo device, HeaptrackSessionConfiguration sessionConfiguration)
        {
            string details;

            if (ProfilerPlugin.Instance.BuildSolution())
            {
                try
                {
                    return(new HeaptrackSession(device, sessionConfiguration));
                }
                catch (Exception ex)
                {
                    details = ex.Message;
                }
            }
            else
            {
                details = "Solution build failed";
            }
            string errMsg = $"Cannot start memory profiling session. {details}";

            ProfilerPlugin.Instance.WriteToOutput(errMsg);
            ProfilerPlugin.Instance.ShowError(errMsg);
            return(null);
        }
示例#2
0
        /// <summary>
        /// Start a memory profiling (heaptrack) session.
        /// </summary>
        public void StartHeaptrack()
        {
            Project project;

            if (!CanStartProfiler(out project) || (project == null))
            {
                return;
            }

            var sessionConfiguration = new HeaptrackSessionConfiguration(project, HeaptrackOptions);

            SDBDeviceInfo device = GetAndCheckSelectedDevice(RunMode.MemoryProfiler);

            if (device == null)
            {
                return;
            }

            HeaptrackSession session = HeaptrackLauncher.CreateSession(device, sessionConfiguration);

            if (session == null)
            {
                return;
            }
            HeaptrackLauncher.StartSession(session);
        }