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