Mono.Debugger.Report.ParseDebugFlags C# (CSharp) Method

ParseDebugFlags() public static method

public static ParseDebugFlags ( string value, DebugFlags &flags ) : bool
value string
flags DebugFlags
return 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;
        }

Usage Example

示例#1
0
        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;
        }
All Usage Examples Of Mono.Debugger.Report::ParseDebugFlags