public static string ParsedArgsAsString()

in src/PerfView/CommandProcessor.cs [2757:3162]


        public static string ParsedArgsAsString(string command, CommandLineArgs parsedArgs)
        {
            var cmdLineArgs = "";
            if (parsedArgs.DataFile != null)
            {
                cmdLineArgs += " " + Command.Quote("/DataFile:" + parsedArgs.DataFile);
            }

            if (parsedArgs.MinRundownTime != 0)
            {
                cmdLineArgs += " /MinRundownTime:" + parsedArgs.MinRundownTime;
            }

            if (parsedArgs.BufferSizeMB != 64)
            {
                cmdLineArgs += " /BufferSizeMB:" + parsedArgs.BufferSizeMB;
            }

            if (parsedArgs.StackCompression)
            {
                cmdLineArgs += " /StackCompression";
            }

            if (parsedArgs.CircularMB != 0)
            {
                cmdLineArgs += " /CircularMB:" + parsedArgs.CircularMB;
            }

            if (parsedArgs.InMemoryCircularBuffer)
            {
                cmdLineArgs += " /InMemoryCircularBuffer";
            }

            if (parsedArgs.CpuSampleMSec != 1)
            {
                cmdLineArgs += " /CpuSampleMSec:" + parsedArgs.CpuSampleMSec;
            }

            if (parsedArgs.MaxCollectSec != 0)
            {
                cmdLineArgs += " /MaxCollectSec:" + parsedArgs.MaxCollectSec;
            }

            if (parsedArgs.RundownTimeout != 120)
            {
                cmdLineArgs += " /RundownTimeout:" + parsedArgs.RundownTimeout;
            }

            if (parsedArgs.CpuCounters != null)
            {
                cmdLineArgs += " /CpuCounters:" + Command.Quote(string.Join(",", parsedArgs.CpuCounters));
            }

            if (parsedArgs.SafeMode)
            {
                cmdLineArgs += " /SafeMode";
            }

            if (parsedArgs.CollectMultiple != 0)
            {
                cmdLineArgs += " /CollectMultiple:" + parsedArgs.CollectMultiple;
            }

            if (parsedArgs.StopOnPerfCounter != null)
            {
                cmdLineArgs += " /StopOnPerfCounter:" + Command.Quote(string.Join(",", parsedArgs.StopOnPerfCounter));
            }

            if (parsedArgs.MonitorPerfCounter != null)
            {
                cmdLineArgs += " /MonitorPerfCounter:" + Command.Quote(string.Join(",", parsedArgs.MonitorPerfCounter));
            }

            if (parsedArgs.StopOnGen2GC)
            {
                cmdLineArgs += " /StopOnGen2GC";
            }

            if (parsedArgs.StopOnEventLogMessage != null)
            {
                cmdLineArgs += " /StopOnEventLogMessage:" + Command.Quote(parsedArgs.StopOnEventLogMessage);
            }

            if (parsedArgs.StopOnAppFabricOverMsec != 0)
            {
                cmdLineArgs += " /StopOnAppFabricOverMsec:" + parsedArgs.StopOnAppFabricOverMsec;
            }

            if (parsedArgs.StopOnGCOverMsec != 0)
            {
                cmdLineArgs += " /StopOnGcOverMsec:" + parsedArgs.StopOnGCOverMsec;
            }

            if (parsedArgs.StopOnBGCFinalPauseOverMsec != 0)
            {
                cmdLineArgs += " /StopOnBGCFinalPauseOverMsec:" + parsedArgs.StopOnBGCFinalPauseOverMsec;
            }

            if (parsedArgs.StopOnEtwEvent != null)
            {
                cmdLineArgs += " /StopOnEtwEvent:" + Command.Quote(string.Join(",", parsedArgs.StopOnEtwEvent));
            }

            if (parsedArgs.StopOnException != null)
            {
                cmdLineArgs += " /StopOnException:" + Command.Quote(parsedArgs.StopOnException);
            }

            if (parsedArgs.DecayToZeroHours != 0)
            {
                cmdLineArgs += " /DecayToZeroHours:" + parsedArgs.DecayToZeroHours.ToString("f3");
            }

            if (parsedArgs.MinSecForTrigger != 3)
            {
                cmdLineArgs += " /MinSecForTrigger:" + parsedArgs.MinSecForTrigger.ToString();
            }

            if (parsedArgs.DelayAfterTriggerSec != 5)
            {
                cmdLineArgs += " /DelayAfterTriggerSec:" + parsedArgs.DelayAfterTriggerSec;
            }

            if (parsedArgs.KernelEvents != KernelTraceEventParser.Keywords.Default)
            {
                cmdLineArgs += " /KernelEvents:" + parsedArgs.KernelEvents.ToString().Replace(" ", "");
            }

            if (parsedArgs.StartOnPerfCounter != null)
            {
                cmdLineArgs += " /StartOnPerfCounter:" + Command.Quote(string.Join(",", parsedArgs.StartOnPerfCounter));
            }

            if (parsedArgs.Process != null)
            {
                cmdLineArgs += " /Process:" + Command.Quote(parsedArgs.Process);
            }

            if (parsedArgs.StopCommand != null)
            {
                cmdLineArgs += " /StopCommand:" + Command.Quote(parsedArgs.StopCommand);
            }

            if(parsedArgs.EnableEventsInContainers)
            {
                cmdLineArgs += " /EnableEventsInContainers";
            }

            if(parsedArgs.EnableSourceContainerTracking)
            {
                cmdLineArgs += " /EnableSourceContainerTracking";
            }

            if (parsedArgs.ClrEventLevel != Microsoft.Diagnostics.Tracing.TraceEventLevel.Verbose)
            {
                cmdLineArgs += " /ClrEventLevel:" + parsedArgs.ClrEventLevel.ToString();
            }

            if (parsedArgs.ClrEvents != ClrTraceEventParser.Keywords.Default)
            {
                cmdLineArgs += " /ClrEvents:" + parsedArgs.ClrEvents.ToString().Replace(" ", "");
            }

            if(parsedArgs.TplEvents != TplEtwProviderTraceEventParser.Keywords.None)
            {
                cmdLineArgs += " /TplEvents:" + parsedArgs.TplEvents.ToString().Replace(" ", "");
            }

            if (parsedArgs.Providers != null)
            {
                cmdLineArgs += " /Providers:" + Command.Quote(string.Join(",", parsedArgs.Providers));
            }

            if (parsedArgs.KeepAllEvents)
            {
                cmdLineArgs += " /KeepAllEvents";
            }

            if (parsedArgs.UnsafePDBMatch)
            {
                cmdLineArgs += " /UnsafePdbMatch";
            }

            if (parsedArgs.ShowUnknownAddresses)
            {
                cmdLineArgs += " /ShowUnknownAddresses";
            }

            if (parsedArgs.ShowOptimizationTiers)
            {
                cmdLineArgs += " /ShowOptimizationTiers";
            }

            if (parsedArgs.ContinueOnError)
            {
                cmdLineArgs += " /ContinueOnError";
            }

            if (parsedArgs.MaxEventCount != 0)
            {
                cmdLineArgs += " /MaxEventCount:" + parsedArgs.MaxEventCount.ToString();
            }

            if (parsedArgs.SkipMSec != 0)
            {
                cmdLineArgs += " /SkipMSec:" + parsedArgs.SkipMSec.ToString("f3");
            }

            if (parsedArgs.NoGui)
            {
                cmdLineArgs += " /NoGui";
            }

            if (s_UserModeSessionName != "PerfViewSession")
            {
                cmdLineArgs += " /SessionName:" + s_UserModeSessionName;
            }

            if (parsedArgs.LogFile != null)
            {
                cmdLineArgs += " /LogFile:" + Command.Quote(parsedArgs.LogFile);
            }

            if (parsedArgs.NoRundown)
            {
                cmdLineArgs += " /NoRundown";
            }

            if (parsedArgs.FocusProcess != null)
            {
                cmdLineArgs += " /FocusProcess:" + Command.Quote(parsedArgs.FocusProcess);
            }

            if (parsedArgs.NoNGenPdbs)
            {
                cmdLineArgs += " /NoNGenPdbs";
            }

            if (parsedArgs.NoNGenRundown)
            {
                cmdLineArgs += " /NoNGenRundown";
            }

            if (parsedArgs.ForceNgenRundown)
            {
                cmdLineArgs += " /ForceNgenRundown";
            }

            if (parsedArgs.NoClrRundown)
            {
                cmdLineArgs += " /NoClrRundown";
            }

            if (parsedArgs.Merge.HasValue)
            {
                cmdLineArgs += " /Merge:" + parsedArgs.Merge.Value;
            }

            if (parsedArgs.Wpr)
            {
                cmdLineArgs += " /Wpr";
            }

            if (parsedArgs.Zip.HasValue)
            {
                cmdLineArgs += " /Zip:" + parsedArgs.Zip.Value;
            }

            if (parsedArgs.NoView)
            {
                cmdLineArgs += " /NoView";
            }

            if (parsedArgs.GCCollectOnly)
            {
                cmdLineArgs += " /GCCollectOnly";
            }

            if (parsedArgs.DotNetAlloc)
            {
                cmdLineArgs += " /DotNetAlloc";
            }

            if (parsedArgs.DotNetAllocSampled)
            {
                cmdLineArgs += " /DotNetAllocSampled";
            }

            if (parsedArgs.DotNetCalls)
            {
                cmdLineArgs += " /DotNetCalls";
            }

            if (parsedArgs.DotNetCallsSampled)
            {
                cmdLineArgs += " /DotNetCallsSampled";
            }

            if (parsedArgs.DisableInlining)
            {
                cmdLineArgs += " /DisableInlining";
            }

            if (parsedArgs.JITInlining)
            {
                cmdLineArgs += " /JITInlining";
            }

            if (parsedArgs.OSHeapExe != null)
            {
                cmdLineArgs += " /OSHeapExe:" + Command.Quote(parsedArgs.OSHeapExe);
            }

            if (parsedArgs.OSHeapProcess != 0)
            {
                cmdLineArgs += " /OSHeapProcess:" + parsedArgs.OSHeapProcess.ToString();
            }

            if (parsedArgs.NetworkCapture)
            {
                cmdLineArgs += " /NetworkCapture";
            }

            if (parsedArgs.NetMonCapture)
            {
                cmdLineArgs += " /NetMonCapture";
            }

            if (parsedArgs.DumpHeap)
            {
                cmdLineArgs += " /DumpHeap";
            }

            if (parsedArgs.GCOnly)
            {
                cmdLineArgs += " /GCOnly";
            }

            if (parsedArgs.Freeze)
            {
                cmdLineArgs += " /Freeze";
            }

            if (parsedArgs.SaveETL)
            {
                cmdLineArgs += " /SaveETL";
            }

            if (parsedArgs.DumpData)
            {
                cmdLineArgs += " /DumpData";
            }

            if (parsedArgs.MaxDumpCountK != 250)
            {
                cmdLineArgs += " /MaxDumpCountK=" + parsedArgs.MaxDumpCountK;
            }

            if (parsedArgs.MaxNodeCountK != 0)
            {
                cmdLineArgs += " /MaxNodeCountK=" + parsedArgs.MaxNodeCountK;
            }

            if (parsedArgs.CCWRefCount)
            {
                cmdLineArgs += " /CCWRefCount";
            }

            if (parsedArgs.RuntimeLoading)
            {
                cmdLineArgs += " /RuntimeLoading";
            }

            if(parsedArgs.ImageIDsOnly)
            {
                cmdLineArgs += " /ImageIDsOnly";
            }

            // TODO FIX NOW this is sort ugly fix is so that commands are an enum 
            if (command == null)
            {
                command = "";
                if (!string.IsNullOrEmpty(parsedArgs.CommandLine))
                {
                    command = "run";
                }
            }

            cmdLineArgs += " " + command;
            if (string.Compare(command, "run", StringComparison.OrdinalIgnoreCase) == 0)
            {
                cmdLineArgs += " " + parsedArgs.CommandLine;
            }

            if (string.Compare(command, "HeapSnapshot", StringComparison.OrdinalIgnoreCase) == 0)
            {
                cmdLineArgs += " " + Command.Quote(parsedArgs.Process);
            }

            if (string.Compare(command, "HeapSnapshotFromProcessDump", StringComparison.OrdinalIgnoreCase) == 0)
            {
                cmdLineArgs += " " + Command.Quote(parsedArgs.ProcessDumpFile);
            }

            return cmdLineArgs;
        }