public static ParseDebugFlags ( string value, DebugFlags &flags ) : bool | ||
value | string | |
flags | DebugFlags | |
Résultat | bool |
public static bool ParseDebugFlags(string value, out DebugFlags flags)
{
int int_flags = 0;
if (Int32.TryParse (value, out int_flags)) {
flags = (DebugFlags) int_flags;
return true;
}
flags = DebugFlags.None;
foreach (string flag in value.Split (',')) {
switch (flag) {
case "jit":
flags |= DebugFlags.JitSymtab;
break;
case "address":
flags |= DebugFlags.MethodAddress;
break;
case "threads":
flags |= DebugFlags.Threads;
break;
case "signals":
flags |= DebugFlags.Signals;
break;
case "eventloop":
flags |= DebugFlags.EventLoop;
break;
case "wait":
flags |= DebugFlags.Wait;
break;
case "sse":
flags |= DebugFlags.SSE;
break;
case "notification":
flags |= DebugFlags.Notification;
break;
case "mutex":
flags |= DebugFlags.Mutex;
break;
case "symtab":
flags |= DebugFlags.SymbolTable;
break;
case "sources":
flags |= DebugFlags.SourceFiles;
break;
case "dwarf":
flags |= DebugFlags.DwarfReader;
break;
case "remoting":
flags |= DebugFlags.Remoting;
break;
case "nunit":
flags |= DebugFlags.NUnit;
break;
case "gui":
flags |= DebugFlags.GUI;
break;
case "cli":
flags |= DebugFlags.CLI;
break;
default:
return false;
}
}
return true;
}
public ReportWriter() { string var = Environment.GetEnvironmentVariable("MDB_DEBUG_FLAGS"); if (var != null) { int pos = var.IndexOf(':'); if (pos > 0) { file = var.Substring(0, pos); var = var.Substring(pos + 1); } if (!Report.ParseDebugFlags(var, out flags)) { Console.WriteLine("Invalid `MDB_DEBUG_FLAGS' environment variable."); } } if (file != null) { writer = new StreamWriter(file, true); } else { writer = new StreamWriter(Console.OpenStandardError()); } writer.AutoFlush = true; start_time = DateTime.Now; }