Microsoft.Zing.ZingerCommandLine.PrintZingerHelp C# (CSharp) Method

PrintZingerHelp() public static method

public static PrintZingerHelp ( string arg, string errorMessage ) : void
arg string
errorMessage string
return void
        public static void PrintZingerHelp(string arg, string errorMessage)
        {
            if (errorMessage != null)
            {
                if (arg != null)
                    ZingerUtilities.PrintErrorMessage(String.Format("Error: \"{0}\" - {1}", arg, errorMessage));
                else
                    ZingerUtilities.PrintErrorMessage(String.Format("Error: {0}", errorMessage));
            }

            Console.WriteLine("Usage: zinger [options] <ZingModel>");
            Console.WriteLine("-h | -?     display this message (-h or -?)");
            Console.WriteLine("===========================");
            Console.WriteLine("Iterative Bounding Options:");
            Console.WriteLine("---------------------------");
            Console.WriteLine("-fBound:<int>");
            Console.WriteLine("Final Cutoff or Maximum bound in the case of depth or delay bounding. Default value is (int max)\n");
            Console.WriteLine("-iBound:<int>");
            Console.WriteLine("Iterative increment bound in the case of depth or delay bounding. Default value is 1\n");
            Console.WriteLine();
            Console.WriteLine("===========================");
            Console.WriteLine("Zinger Configuration:");
            Console.WriteLine("---------------------------");
            Console.WriteLine("-p | -p:<n>");
            Console.WriteLine("Degree of Parallelism during Search. -p would create no_of_worker_threads = no_of_cores.");
            Console.WriteLine("You can control the degree of parallelism by using -p:<n>, in that case no_of_worker_threads = n\n");
            Console.WriteLine("-m | -multiple");
            Console.WriteLine("Find all bugs in the model. Dont stop exploration after finding first bug.\n");
            Console.WriteLine("-s | -stats");
            Console.WriteLine("Print Search Statistics after each Iterative Bound\n");
            Console.WriteLine("-et:<filename>");
            Console.WriteLine("Dump the generated (only trace statements) Zing error trace in file.\n");
            Console.WriteLine("-entireZingTrace");
            Console.WriteLine("Genererates detailed Zing Stack Error trace.\n");
            Console.WriteLine();
            Console.WriteLine("-timeout:<time in seconds>");
            Console.WriteLine("Maximum amount of time to run zinger. Zinger will be terminated after time-out period");
            Console.WriteLine();

            Console.WriteLine("===========================");
            Console.WriteLine("Zinger Optimizations:");
            Console.WriteLine("---------------------------");
            Console.WriteLine("-ct");
            Console.WriteLine("Use trace compaction, steps from states that have single successor are not stored.\n");
            Console.WriteLine("-frontiersToDisk");
            Console.WriteLine("Dump frontier states after each iteration into files on disk.");
            Console.WriteLine("This option should be used when you dont want store frontiers in memory.");
            Console.WriteLine("The search will be severely slowed down because of disk access but memory consumption is minimal\n");
            Console.WriteLine("-co:n");
            Console.WriteLine("Fingerprint states having single successor with probability n/1000000 <default n = 0>.\n");
            Console.WriteLine("-maxMemory:<double>GB");
            Console.WriteLine("Maximum memory consumption during stateful search. After process consumes 70% ofmax_size (e.g. 2GB).");
            Console.WriteLine("States are randomly replaced from the state table and frontiers are stored on disk.\n");
            Console.WriteLine();
            Console.WriteLine("===========================");
            Console.WriteLine("Zinger Search Strategy:");
            Console.WriteLine("---------------------------");
            Console.WriteLine("-maxDFSStack:<int>");
            Console.WriteLine("Maximum size of the DFS search stack. A counter example is generated if size of the stack exceeds the bound.\n");
            Console.WriteLine("-randomsample:(numOfSchedulesPerIteration,maxDepth)");
            Console.WriteLine("Zinger performs random walk without DFS stack. default is (1000,600).\n");
            Console.WriteLine("-pb");
            Console.WriteLine("Perform preemption bounding\n");
            Console.WriteLine("-sched:<scheduler.dll>");
            Console.WriteLine("Zinger performs delay bounding using the deterministic scheduler (scheduler.dll).\n");
            Console.WriteLine("-bc:<int>");
            Console.WriteLine("Bound the choice operations or bound the number of times choose(bool) returns true.");
            Console.WriteLine("The default value is \"false\" for choose(bool), choice budget is used each time true is returned.\n");
            Console.WriteLine("-depthb");
            Console.WriteLine("Perform iterative depth bounding (default is delay bounded search)");
            Console.WriteLine();
            Console.WriteLine("===========================");
            Console.WriteLine("Zinger Search Strategy For Liveness:");
            Console.WriteLine("---------------------------");
            Console.WriteLine("-NDFSliveness");
            Console.WriteLine("To perform liveness search using NDFS <use only with sequential and non-iterative>\n");
            Console.WriteLine("-randomliveness");
            Console.WriteLine("This option uses random search based liveness algorithm.");
            Console.WriteLine("It performs random search untill it finds a cycles in the execution.");
            /*Console.WriteLine("-MAPLiveness");
            Console.WriteLine("Uses MAP cycle detection algorithm for finding accepting cycles. Can be used with Parallelism.\n");*/
            Console.WriteLine("===============================");
            Console.WriteLine("Zinger Plugin:");
            Console.WriteLine("-------------------------------");
            Console.WriteLine("-plugin:<plugin.dll>");
        }