public static int Main(string[] args) { DebugHelper.HandleDebugSwitch(ref args); new MulticoreJitActivator().TryActivateMulticoreJit(); if (Env.GetEnvironmentVariableAsBool("DOTNET_CLI_CAPTURE_TIMING", false)) { PerfTrace.Enabled = true; } InitializeProcess(); try { using (PerfTrace.Current.CaptureTiming()) { return(ProcessArgs(args)); } } catch (Exception e) when(e.ShouldBeDisplayedAsError()) { Reporter.Error.WriteLine(CommandContext.IsVerbose() ? e.ToString().Red().Bold() : e.Message.Red().Bold()); return(1); } finally { if (PerfTrace.Enabled) { Reporter.Output.WriteLine("Performance Summary:"); PerfTraceOutput.Print(Reporter.Output, PerfTrace.GetEvents()); } } }
public static int Main(string[] args) { DebugHelper.HandleDebugSwitch(ref args); // Capture the current timestamp to calculate the host overhead. DateTime mainTimeStamp = DateTime.Now; bool perfLogEnabled = Env.GetEnvironmentVariableAsBool("DOTNET_CLI_PERF_LOG", false); PerformanceLogStartupInformation startupInfo = null; if (perfLogEnabled) { startupInfo = new PerformanceLogStartupInformation(mainTimeStamp); PerformanceLogManager.InitializeAndStartCleanup(FileSystemWrapper.Default); } PerformanceLogEventListener perLogEventListener = null; try { if (perfLogEnabled) { perLogEventListener = PerformanceLogEventListener.Create(FileSystemWrapper.Default, PerformanceLogManager.Instance.CurrentLogDirectory); } new MulticoreJitActivator().TryActivateMulticoreJit(); PerformanceLogEventSource.Log.LogStartUpInformation(startupInfo); PerformanceLogEventSource.Log.CLIStart(); if (Env.GetEnvironmentVariableAsBool("DOTNET_CLI_CAPTURE_TIMING", false)) { PerfTrace.Enabled = true; } InitializeProcess(); try { using (PerfTrace.Current.CaptureTiming()) { return(ProcessArgs(args)); } } catch (HelpException e) { Reporter.Output.WriteLine(e.Message); return(0); } catch (Exception e) when(e.ShouldBeDisplayedAsError()) { Reporter.Error.WriteLine(CommandContext.IsVerbose() ? e.ToString().Red().Bold() : e.Message.Red().Bold()); var commandParsingException = e as CommandParsingException; if (commandParsingException != null) { Reporter.Output.WriteLine(commandParsingException.HelpText); } return(1); } catch (Exception e) when(!e.ShouldBeDisplayedAsError()) { // If telemetry object has not been initialized yet. It cannot be collected TelemetryEventEntry.SendFiltered(e); Reporter.Error.WriteLine(e.ToString().Red().Bold()); return(1); } finally { if (PerfTrace.Enabled) { Reporter.Output.WriteLine("Performance Summary:"); PerfTraceOutput.Print(Reporter.Output, PerfTrace.GetEvents()); } PerformanceLogEventSource.Log.CLIStop(); } } finally { if (perLogEventListener != null) { perLogEventListener.Dispose(); } } }