public static Command CollectCommand() =>
 new Command(
     name: "collect",
     description: "Collects a diagnostic trace from a currently running process")
 {
     // Handler
     HandlerDescriptor.FromDelegate((CollectDelegate)Collect).GetCommandHandler(),
     // Options
     CommonOptions.ProcessIdOption(),
     CircularBufferOption(),
     OutputPathOption(),
     ProvidersOption(),
     ProfileOption(),
     CommonOptions.FormatOption(),
     DurationOption(),
     CLREventsOption(),
     CLREventLevelOption(),
     CommonOptions.NameOption()
 };
 public static Command CollectCommand() =>
 new Command(
     name: "collect",
     description: "Collects a diagnostic trace from a currently running process or launch a child process and trace it. Append -- to the collect command to instruct the tool to run a command and trace it immediately. When tracing a child process, the exit code of dotnet-trace shall be that of the traced process unless the trace process encounters an error.")
 {
     // Handler
     HandlerDescriptor.FromDelegate((CollectDelegate)Collect).GetCommandHandler(),
     // Options
     CommonOptions.ProcessIdOption(),
     CircularBufferOption(),
     OutputPathOption(),
     ProvidersOption(),
     ProfileOption(),
     CommonOptions.FormatOption(),
     DurationOption(),
     CLREventsOption(),
     CLREventLevelOption(),
     CommonOptions.NameOption(),
     DiagnosticPortOption(),
     ShowChildIOOption()
 };