Path: blob/main/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerOptions.h
35262 views
//1// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.2// See https://llvm.org/LICENSE.txt for license information.3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception4//5//===----------------------------------------------------------------------===//6// fuzzer::FuzzingOptions7//===----------------------------------------------------------------------===//89#ifndef LLVM_FUZZER_OPTIONS_H10#define LLVM_FUZZER_OPTIONS_H1112#include "FuzzerDefs.h"1314namespace fuzzer {1516struct FuzzingOptions {17int Verbosity = 1;18size_t MaxLen = 0;19size_t LenControl = 1000;20bool KeepSeed = false;21int UnitTimeoutSec = 300;22int TimeoutExitCode = 70;23int OOMExitCode = 71;24int InterruptExitCode = 72;25int ErrorExitCode = 77;26bool IgnoreTimeouts = true;27bool IgnoreOOMs = true;28bool IgnoreCrashes = false;29int MaxTotalTimeSec = 0;30int RssLimitMb = 0;31int MallocLimitMb = 0;32bool DoCrossOver = true;33bool CrossOverUniformDist = false;34int MutateDepth = 5;35bool ReduceDepth = false;36bool UseCounters = false;37bool UseMemmem = true;38bool UseCmp = false;39int UseValueProfile = false;40bool Shrink = false;41bool ReduceInputs = false;42int ReloadIntervalSec = 1;43bool ShuffleAtStartUp = true;44bool PreferSmall = true;45size_t MaxNumberOfRuns = -1L;46int ReportSlowUnits = 10;47bool OnlyASCII = false;48bool Entropic = true;49bool ForkCorpusGroups = false;50size_t EntropicFeatureFrequencyThreshold = 0xFF;51size_t EntropicNumberOfRarestFeatures = 100;52bool EntropicScalePerExecTime = false;53std::string OutputCorpus;54std::string ArtifactPrefix = "./";55std::string ExactArtifactPath;56std::string ExitOnSrcPos;57std::string ExitOnItem;58std::string FocusFunction;59std::string DataFlowTrace;60std::string CollectDataFlow;61std::string FeaturesDir;62std::string MutationGraphFile;63std::string StopFile;64bool SaveArtifacts = true;65bool PrintNEW = true; // Print a status line when new units are found;66bool PrintNewCovPcs = false;67int PrintNewCovFuncs = 0;68bool PrintFinalStats = false;69bool PrintCorpusStats = false;70bool PrintCoverage = false;71bool PrintFullCoverage = false;72bool DumpCoverage = false;73bool DetectLeaks = true;74int PurgeAllocatorIntervalSec = 1;75int TraceMalloc = 0;76bool HandleAbrt = false;77bool HandleAlrm = false;78bool HandleBus = false;79bool HandleFpe = false;80bool HandleIll = false;81bool HandleInt = false;82bool HandleSegv = false;83bool HandleTerm = false;84bool HandleXfsz = false;85bool HandleUsr1 = false;86bool HandleUsr2 = false;87bool HandleWinExcept = false;88};8990} // namespace fuzzer9192#endif // LLVM_FUZZER_OPTIONS_H939495