Home | History | Annotate | Download | only in Fuzzer

Lines Matching refs:Options

62   static void ResetCounters(const FuzzingOptions &Options) {
63 if (Options.UseCounters) {
68 static void Prepare(const FuzzingOptions &Options, Fuzzer::Coverage *C) {
69 if (Options.UseCounters) {
77 static bool RecordMax(const FuzzingOptions &Options, Fuzzer::Coverage *C) {
86 if (Options.UseIndirCalls &&
96 if (Options.UseCounters) {
146 Fuzzer::Fuzzer(UserCallback CB, MutationDispatcher &MD, FuzzingOptions Options)
147 : CB(CB), MD(MD), Options(Options) {
154 if (Options.DetectLeaks && EF->__sanitizer_install_malloc_and_free_hooks)
159 if (CurrentUnitData || Options.MaxLen == 0) return;
160 CurrentUnitData = new uint8_t[Options.MaxLen];
215 exit(Options.ErrorExitCode);
226 assert(Options.UnitTimeoutSec > 0);
234 if (Options.Verbosity >= 2)
236 if (Seconds >= (size_t)Options.UnitTimeoutSec) {
239 Options.UnitTimeoutSec);
247 _Exit(Options.TimeoutExitCode); // Stop right now.
254 GetPid(), GetPeakRSSMb(), Options.RssLimitMb);
261 _Exit(Options.ErrorExitCode); // Stop right now.
266 if (Options.OutputCSV) {
277 if (!Options.Verbosity)
293 if (!Options.PrintFinalStats) return;
310 assert(Options.MaxLen == 0); // Can only reset MaxLen from 0 to non-0.
312 Options.MaxLen = MaxLen;
313 Printf("INFO: -max_len is not provided, using %zd\n", Options.MaxLen);
318 if (Options.OutputCorpus.empty())
321 ReadDirToVectorOfUnits(Options.OutputCorpus.c_str(), &AdditionalCorpus,
327 if (!Options.Reload)
329 if (Options.Verbosity >= 2)
346 if (Options.PreferSmall)
374 if (Options.ShuffleAtStartUp)
377 if (Options.TruncateUnits) {
385 if (!Options.PruneCorpus || NewCoverage) {
387 if (Options.Verbosity >= 2)
407 bool Res = CoverageController::RecordMax(Options, &MaxCoverage);
409 if (Options.PrintNewCovPcs && PrevBufferLen != MaxCoverage.PcBufferLen) {
425 CoverageController::ResetCounters(Options);
436 TimeOfUnit >= Options.ReportSlowUnits) {
445 if (TotalNumberOfRuns >= Options.MaxNumberOfRuns)
488 if (Options.OnlyASCII)
490 if (Options.OutputCorpus.empty())
492 std::string Path = DirPlusFile(Options.OutputCorpus, Hash(U));
494 if (Options.Verbosity >= 2)
499 if (!Options.SaveArtifacts)
501 std::string Path = Options.ArtifactPrefix + Prefix + Hash(U);
502 if (!Options.ExactArtifactPath.empty())
503 Path = Options.ExactArtifactPath; // Overrides ArtifactPrefix.
506 Options.ArtifactPrefix.c_str(), Path.c_str());
512 if (Options.OutputCorpus.empty())
515 WriteToFile(U, DirPlusFile(Options.OutputCorpus, Hash(U)));
516 if (Options.Verbosity)
518 Options.OutputCorpus.c_str());
522 if (!Options.PrintNEW)
525 if (Options.Verbosity) {
584 assert(Options.MaxLen > 0);
586 ReadDirToVectorOfUnits(Corpora[0].c_str(), &Initial, nullptr, Options.MaxLen);
588 ReadDirToVectorOfUnits(C.c_str(), &Extra, nullptr, Options.MaxLen);
609 if (!Options.DetectLeaks) return;
620 Options.DetectLeaks = false;
637 _Exit(Options.ErrorExitCode); // not exit() to disable lsan further on.
648 assert(Size <= Options.MaxLen && "Oversized Unit");
651 for (int i = 0; i < Options.MutateDepth; i++) {
653 NewSize = MD.Mutate(CurrentUnitData, Size, Options.MaxLen);
655 assert(NewSize <= Options.MaxLen &&
680 CoverageController::Prepare(Options, &MaxCoverage);
693 Options.PrintNEW = false; // Don't print NEW status lines when drilling.
707 SavedOutputCorpusPath.swap(Options.OutputCorpus);
713 SavedOutputCorpusPath.swap(Options.OutputCorpus);
717 Options.PrintNEW = true;
727 if (NumMerged && Options.Verbosity)
733 if (Options.DoCrossOver)
738 RereadOutputCorpus(Options.MaxLen);
741 if (TotalNumberOfRuns >= Options.MaxNumberOfRuns)
743 if (Options.MaxTotalTimeSec > 0 &&
745 static_cast<size_t>(Options.MaxTotalTimeSec))