Lines Matching full:flags

1 //===- FuzzerDriver.cpp - FuzzerDriver function and flags -----------------===//
67 } Flags; variable
73 {#Name, Description, Default, &Flags.Name, nullptr, nullptr},
76 nullptr, nullptr, &Flags.Name},
78 {#Name, Description, 0, nullptr, &Flags.Name, nullptr},
150 Printf("INFO: libFuzzer ignores flags that start with '--'\n"); in ParseOneFlag()
164 if (Flags.verbosity >= 2) in ParseOneFlag()
170 if (Flags.verbosity >= 2) in ParseOneFlag()
175 if (Flags.verbosity >= 2) in ParseOneFlag()
185 "use -help=1 to list all flags\n\n", Param); in ParseOneFlag()
204 Flags.len_control = 0; in ParseFlags()
212 if (Flags.ignore_remaining_args) in ParseFlags()
240 if (Flags.verbosity) { in WorkerThread()
329 if (Flags.print_full_coverage) { in RunOneTest()
358 if (Inputs->size() != 1 || !Flags.exact_artifact_path) { in CleanseCrashInput()
364 std::string OutputFilePath = Flags.exact_artifact_path; in CleanseCrashInput()
423 if (Flags.runs <= 0 && Flags.max_total_time == 0) { in MinimizeCrashInput()
456 Flags.exact_artifact_path in MinimizeCrashInput()
457 ? Flags.exact_artifact_path in MinimizeCrashInput()
466 if (Flags.exact_artifact_path) { in MinimizeCrashInput()
467 CurrentFilePath = Flags.exact_artifact_path; in MinimizeCrashInput()
479 if (Flags.exact_artifact_path) { in MinimizeCrashInput()
480 CurrentFilePath = Flags.exact_artifact_path; in MinimizeCrashInput()
529 {}, &NewCov, CFPath, true, Flags.set_cover_merge); in Merge()
533 if (!Flags.merge_control_file) in Merge()
610 if (Flags.seed_inputs[0] == '@') in ParseSeedInuts()
611 SeedInputs = FileToString(Flags.seed_inputs + 1); // File contains list. in ParseSeedInuts()
613 SeedInputs = Flags.seed_inputs; // seed_inputs contains the list. in ParseSeedInuts()
662 if (Flags.help) { in FuzzerDriver()
667 if (Flags.close_fd_mask & 2) in FuzzerDriver()
669 if (Flags.close_fd_mask & 1) in FuzzerDriver()
672 if (Flags.jobs > 0 && Flags.workers == 0) { in FuzzerDriver()
673 Flags.workers = std::min(NumberOfCpuCores() / 2, Flags.jobs); in FuzzerDriver()
674 if (Flags.workers > 1) in FuzzerDriver()
675 Printf("Running %u workers\n", Flags.workers); in FuzzerDriver()
678 if (Flags.workers > 0 && Flags.jobs > 0) in FuzzerDriver()
679 return RunInMultipleProcesses(Args, Flags.workers, Flags.jobs); in FuzzerDriver()
682 Options.Verbosity = Flags.verbosity; in FuzzerDriver()
683 Options.MaxLen = Flags.max_len; in FuzzerDriver()
684 Options.LenControl = Flags.len_control; in FuzzerDriver()
685 Options.KeepSeed = Flags.keep_seed; in FuzzerDriver()
686 Options.UnitTimeoutSec = Flags.timeout; in FuzzerDriver()
687 Options.ErrorExitCode = Flags.error_exitcode; in FuzzerDriver()
688 Options.TimeoutExitCode = Flags.timeout_exitcode; in FuzzerDriver()
689 Options.IgnoreTimeouts = Flags.ignore_timeouts; in FuzzerDriver()
690 Options.IgnoreOOMs = Flags.ignore_ooms; in FuzzerDriver()
691 Options.IgnoreCrashes = Flags.ignore_crashes; in FuzzerDriver()
692 Options.MaxTotalTimeSec = Flags.max_total_time; in FuzzerDriver()
693 Options.DoCrossOver = Flags.cross_over; in FuzzerDriver()
694 Options.CrossOverUniformDist = Flags.cross_over_uniform_dist; in FuzzerDriver()
695 Options.MutateDepth = Flags.mutate_depth; in FuzzerDriver()
696 Options.ReduceDepth = Flags.reduce_depth; in FuzzerDriver()
697 Options.UseCounters = Flags.use_counters; in FuzzerDriver()
698 Options.UseMemmem = Flags.use_memmem; in FuzzerDriver()
699 Options.UseCmp = Flags.use_cmp; in FuzzerDriver()
700 Options.UseValueProfile = Flags.use_value_profile; in FuzzerDriver()
701 Options.Shrink = Flags.shrink; in FuzzerDriver()
702 Options.ReduceInputs = Flags.reduce_inputs; in FuzzerDriver()
703 Options.ShuffleAtStartUp = Flags.shuffle; in FuzzerDriver()
704 Options.PreferSmall = Flags.prefer_small; in FuzzerDriver()
705 Options.ReloadIntervalSec = Flags.reload; in FuzzerDriver()
706 Options.OnlyASCII = Flags.only_ascii; in FuzzerDriver()
707 Options.DetectLeaks = Flags.detect_leaks; in FuzzerDriver()
708 Options.PurgeAllocatorIntervalSec = Flags.purge_allocator_interval; in FuzzerDriver()
709 Options.TraceMalloc = Flags.trace_malloc; in FuzzerDriver()
710 Options.RssLimitMb = Flags.rss_limit_mb; in FuzzerDriver()
711 Options.MallocLimitMb = Flags.malloc_limit_mb; in FuzzerDriver()
714 if (Flags.runs >= 0) in FuzzerDriver()
715 Options.MaxNumberOfRuns = Flags.runs; in FuzzerDriver()
716 if (!Inputs->empty() && !Flags.minimize_crash_internal_step) { in FuzzerDriver()
722 ValidateDirectoryExists(Options.OutputCorpus, Flags.create_missing_dirs); in FuzzerDriver()
725 Options.ReportSlowUnits = Flags.report_slow_units; in FuzzerDriver()
726 if (Flags.artifact_prefix) { in FuzzerDriver()
727 Options.ArtifactPrefix = Flags.artifact_prefix; in FuzzerDriver()
736 ValidateDirectoryExists(ArtifactPathDir, Flags.create_missing_dirs); in FuzzerDriver()
738 if (Flags.exact_artifact_path) { in FuzzerDriver()
739 Options.ExactArtifactPath = Flags.exact_artifact_path; in FuzzerDriver()
741 Flags.create_missing_dirs); in FuzzerDriver()
744 if (Flags.dict) in FuzzerDriver()
745 if (!ParseDictionaryFile(FileToString(Flags.dict), &Dictionary)) in FuzzerDriver()
747 if (Flags.verbosity > 0 && !Dictionary.empty()) in FuzzerDriver()
751 !RunIndividualFiles || Flags.minimize_crash_internal_step; in FuzzerDriver()
752 Options.PrintNewCovPcs = Flags.print_pcs; in FuzzerDriver()
753 Options.PrintNewCovFuncs = Flags.print_funcs; in FuzzerDriver()
754 Options.PrintFinalStats = Flags.print_final_stats; in FuzzerDriver()
755 Options.PrintCorpusStats = Flags.print_corpus_stats; in FuzzerDriver()
756 Options.PrintCoverage = Flags.print_coverage; in FuzzerDriver()
757 Options.PrintFullCoverage = Flags.print_full_coverage; in FuzzerDriver()
758 if (Flags.exit_on_src_pos) in FuzzerDriver()
759 Options.ExitOnSrcPos = Flags.exit_on_src_pos; in FuzzerDriver()
760 if (Flags.exit_on_item) in FuzzerDriver()
761 Options.ExitOnItem = Flags.exit_on_item; in FuzzerDriver()
762 if (Flags.focus_function) in FuzzerDriver()
763 Options.FocusFunction = Flags.focus_function; in FuzzerDriver()
764 if (Flags.data_flow_trace) in FuzzerDriver()
765 Options.DataFlowTrace = Flags.data_flow_trace; in FuzzerDriver()
766 if (Flags.features_dir) { in FuzzerDriver()
767 Options.FeaturesDir = Flags.features_dir; in FuzzerDriver()
768 ValidateDirectoryExists(Options.FeaturesDir, Flags.create_missing_dirs); in FuzzerDriver()
770 if (Flags.mutation_graph_file) in FuzzerDriver()
771 Options.MutationGraphFile = Flags.mutation_graph_file; in FuzzerDriver()
772 if (Flags.collect_data_flow) in FuzzerDriver()
773 Options.CollectDataFlow = Flags.collect_data_flow; in FuzzerDriver()
774 if (Flags.stop_file) in FuzzerDriver()
775 Options.StopFile = Flags.stop_file; in FuzzerDriver()
776 Options.Entropic = Flags.entropic; in FuzzerDriver()
778 (size_t)Flags.entropic_feature_frequency_threshold; in FuzzerDriver()
780 (size_t)Flags.entropic_number_of_rarest_features; in FuzzerDriver()
781 Options.EntropicScalePerExecTime = Flags.entropic_scale_per_exec_time; in FuzzerDriver()
795 unsigned Seed = Flags.seed; in FuzzerDriver()
800 if (Flags.verbosity) in FuzzerDriver()
803 if (Flags.collect_data_flow && Flags.data_flow_trace && !Flags.fork && in FuzzerDriver()
804 !(Flags.merge || Flags.set_cover_merge)) { in FuzzerDriver()
806 return CollectDataFlow(Flags.collect_data_flow, Flags.data_flow_trace, in FuzzerDriver()
809 return CollectDataFlow(Flags.collect_data_flow, Flags.data_flow_trace, in FuzzerDriver()
825 StartRssThread(F, Flags.rss_limit_mb); in FuzzerDriver()
828 Options.HandleAbrt = Flags.handle_abrt; in FuzzerDriver()
829 Options.HandleAlrm = !Flags.minimize_crash; in FuzzerDriver()
830 Options.HandleBus = Flags.handle_bus; in FuzzerDriver()
831 Options.HandleFpe = Flags.handle_fpe; in FuzzerDriver()
832 Options.HandleIll = Flags.handle_ill; in FuzzerDriver()
833 Options.HandleInt = Flags.handle_int; in FuzzerDriver()
834 Options.HandleSegv = Flags.handle_segv; in FuzzerDriver()
835 Options.HandleTerm = Flags.handle_term; in FuzzerDriver()
836 Options.HandleXfsz = Flags.handle_xfsz; in FuzzerDriver()
837 Options.HandleUsr1 = Flags.handle_usr1; in FuzzerDriver()
838 Options.HandleUsr2 = Flags.handle_usr2; in FuzzerDriver()
839 Options.HandleWinExcept = Flags.handle_winexcept; in FuzzerDriver()
845 if (Flags.minimize_crash) in FuzzerDriver()
848 if (Flags.minimize_crash_internal_step) in FuzzerDriver()
851 if (Flags.cleanse_crash) in FuzzerDriver()
856 int Runs = std::max(1, Flags.runs); in FuzzerDriver()
876 Options.ForkCorpusGroups = Flags.fork_corpus_groups; in FuzzerDriver()
877 if (Flags.fork) in FuzzerDriver()
878 FuzzWithFork(F->GetMD().GetRand(), Options, Args, *Inputs, Flags.fork); in FuzzerDriver()
880 if (Flags.merge || Flags.set_cover_merge) in FuzzerDriver()
881 Merge(F, Options, Args, *Inputs, Flags.merge_control_file); in FuzzerDriver()
883 if (Flags.merge_inner) { in FuzzerDriver()
887 assert(Flags.merge_control_file); in FuzzerDriver()
888 F->CrashResistantMergeInternalStep(Flags.merge_control_file, in FuzzerDriver()
889 !strncmp(Flags.merge_inner, "2", 1)); in FuzzerDriver()
893 if (Flags.analyze_dict) { in FuzzerDriver()
914 auto CorporaFiles = ReadCorpora(*Inputs, ParseSeedInuts(Flags.seed_inputs)); in FuzzerDriver()
917 if (Flags.verbosity) in FuzzerDriver()