/// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        /// <param name="cancellationToken">A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.</param>
        /// <param name="progress">A provider for progress updates.</param>
        /// <returns>A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.</returns>
        protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress)
        {
            await Task.Yield();

            await PerfGraphToolWindowCommand.InitializeAsync(this);

            ComponentModel = (await this.GetServiceAsync(typeof(SComponentModel))) as IComponentModel;
            await TaskScheduler.Default;

            _ = DumperViewerMain.SendTelemetryAsync($"{Process.GetCurrentProcess().MainModule.FileVersionInfo.FileVersion}");
        }
예제 #2
0
        public async Task TestDumperMain()
        {
            var pid          = Process.GetCurrentProcess().Id;
            var pathDumpFile = Path.Combine(Environment.CurrentDirectory, "test dump.dmp");

            if (File.Exists(pathDumpFile))
            {
                File.Delete(pathDumpFile);
            }
            var args = new[] {
                "-p", pid.ToString(),
                "-f", "\"" + pathDumpFile + "\"",
                "-c"
            };
            //            DumperViewerMain.Main(args);
            var x = new DumperViewerMain(args);
            await x.DoitAsync();
        }
예제 #3
0
        public void TestDumperInProc()
        {
            var pid          = Process.GetProcessesByName("devenv")[0].Id;
            var pathDumpFile = Path.Combine(Environment.CurrentDirectory, "test dump.dmp");

            if (File.Exists(pathDumpFile))
            {
                File.Delete(pathDumpFile);
            }
            var args = new[] {
                "-p", pid.ToString(),
                "-f", "\"" + pathDumpFile + "\""
            };
            var odumper = new DumperViewerMain(args)
            {
                _logger = this
            };

            odumper.DoMain();

            Assert.IsNotNull(_lstLoggedStrings.Where(s => s.Contains("in DumperViewer")).FirstOrDefault());

            Assert.IsNotNull(_lstLoggedStrings.Where(s => s.Contains("Done creating dump")).FirstOrDefault());
        }
예제 #4
0
 public static void Main(string[] args)
 {
     DumperViewerMain.Main(args);
 }