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); }
/// <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); }