in src/WindowsDebugLauncher/Program.cs [17:119]
private static int Main(string[] argv)
{
DebugLauncher.LaunchParameters parameters = new DebugLauncher.LaunchParameters();
parameters.PipeServer = "."; // Currently only supporting local pipe connections
// Avoid sending the BOM on Windows if the Beta Unicode feature is enabled in Windows 10
Console.OutputEncoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false);
Console.InputEncoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false);
foreach (var a in argv)
{
if (String.IsNullOrEmpty(a))
{
continue;
}
switch (a)
{
case "-h":
case "-?":
case "/?":
case "--help":
HelpMessage();
return 1;
case "--pauseForDebugger":
{
while (!Debugger.IsAttached)
{
Thread.Sleep(500);
}
}
break;
default:
if (a.StartsWith("--stdin=", StringComparison.OrdinalIgnoreCase))
{
string stdin = a.Substring("--stdin=".Length);
if (string.IsNullOrWhiteSpace(stdin))
{
GenerateError("--stdin");
return -1;
}
parameters.StdInPipeName = stdin;
}
else if (a.StartsWith("--stdout=", StringComparison.OrdinalIgnoreCase))
{
string stdout = a.Substring("--stdout=".Length);
if (string.IsNullOrWhiteSpace(stdout))
{
GenerateError("--stdout");
return -1;
}
parameters.StdOutPipeName = stdout;
}
else if (a.StartsWith("--stderr=", StringComparison.OrdinalIgnoreCase))
{
string stderr = a.Substring("--stderr=".Length);
if (string.IsNullOrWhiteSpace(stderr))
{
GenerateError("--stderr");
return -1;
}
parameters.StdErrPipeName = stderr;
}
else if (a.StartsWith("--pid=", StringComparison.OrdinalIgnoreCase))
{
string pid = a.Substring("--pid=".Length);
if (string.IsNullOrWhiteSpace(pid))
{
GenerateError("--pid");
return -1;
}
parameters.PidPipeName = pid;
}
else if (a.StartsWith("--dbgExe=", StringComparison.OrdinalIgnoreCase))
{
string dbgExe = a.Substring("--dbgExe=".Length);
if (String.IsNullOrEmpty(dbgExe) || !File.Exists(dbgExe))
{
GenerateError("--dbgExe");
return -1;
}
parameters.DbgExe = dbgExe;
}
else
{
parameters.DbgExeArgs.AddRange(ParseDebugExeArgs(a));
}
break;
}
}
if (!parameters.ValidateParameters())
{
Console.Error.WriteLine("One or more required values are missing.");
HelpMessage();
return -1;
}
DebugLauncher launcher = new DebugLauncher(parameters);
launcher.StartPipeConnection();
return 0;
}