|
LLVM
4.0.0
|
#include <FuzzerInternal.h>
Classes | |
| struct | Coverage |
Public Member Functions | |
| Fuzzer (UserCallback CB, InputCorpus &Corpus, MutationDispatcher &MD, FuzzingOptions Options) | |
| ~Fuzzer () | |
| void | Loop () |
| void | MinimizeCrashLoop (const Unit &U) |
| void | ShuffleAndMinimize (UnitVector *V) |
| void | InitializeTraceState () |
| void | RereadOutputCorpus (size_t MaxSize) |
| size_t | secondsSinceProcessStartUp () |
| bool | TimedOut () |
| size_t | execPerSec () |
| size_t | getTotalNumberOfRuns () |
| void | ExecuteCallback (const uint8_t *Data, size_t Size) |
| size_t | RunOne (const uint8_t *Data, size_t Size) |
| void | Merge (const std::vector< std::string > &Corpora) |
| void | CrashResistantMerge (const std::vector< std::string > &Args, const std::vector< std::string > &Corpora) |
| void | CrashResistantMergeInternalStep (const std::string &ControlFilePath) |
| UnitVector | FindExtraUnits (const UnitVector &Initial, const UnitVector &Extra) |
| MutationDispatcher & | GetMD () |
| void | PrintFinalStats () |
| void | SetMaxInputLen (size_t MaxInputLen) |
| void | SetMaxMutationLen (size_t MaxMutationLen) |
| void | RssLimitCallback () |
| void | ResetCoverage () |
| bool | InFuzzingThread () const |
| size_t | GetCurrentUnitInFuzzingThead (const uint8_t **Data) const |
| void | TryDetectingAMemoryLeak (const uint8_t *Data, size_t Size, bool DuringInitialCorpusExecution) |
| void | HandleMalloc (size_t Size) |
Static Public Member Functions | |
| static void | StaticAlarmCallback () |
| static void | StaticCrashSignalCallback () |
| static void | StaticInterruptCallback () |
| static void | StaticFileSizeExceedCallback () |
Definition at line 32 of file FuzzerInternal.h.
| fuzzer::Fuzzer::Fuzzer | ( | UserCallback | CB, |
| InputCorpus & | Corpus, | ||
| MutationDispatcher & | MD, | ||
| FuzzingOptions | Options | ||
| ) |
Definition at line 176 of file FuzzerLoop.cpp.
References assert(), fuzzer::FuzzingOptions::DetectLeaks, fuzzer::EF, fuzzer::F, fuzzer::FreeHook(), fuzzer::GetEpoch(), InitializeTraceState(), fuzzer::MallocHook(), fuzzer::FuzzingOptions::MaxLen, fuzzer::FuzzingOptions::OutputCorpus, fuzzer::TracePC::PrintModuleInfo(), fuzzer::FuzzingOptions::PrintNewCovPcs, fuzzer::FuzzingOptions::ReloadIntervalSec, ResetCoverage(), fuzzer::TracePC::ResetMaps(), fuzzer::TracePC::SetPrintNewPCs(), fuzzer::TracePC::SetUseCounters(), fuzzer::TracePC::SetUseValueProfile(), fuzzer::TPC, fuzzer::FuzzingOptions::UseCounters, fuzzer::FuzzingOptions::UseValueProfile, and fuzzer::FuzzingOptions::Verbosity.
| fuzzer::Fuzzer::~Fuzzer | ( | ) |
Definition at line 202 of file FuzzerLoop.cpp.
| void fuzzer::Fuzzer::CrashResistantMerge | ( | const std::vector< std::string > & | Args, |
| const std::vector< std::string > & | Corpora | ||
| ) |
Definition at line 210 of file FuzzerMerge.cpp.
References fuzzer::CloneArgsWithoutX(), fuzzer::DirPlusFile(), fuzzer::ExecuteCommand(), fuzzer::F, fuzzer::FileToVector(), fuzzer::GetPid(), i, fuzzer::ListFilesInDirRecursive(), fuzzer::Merger::Merge(), fuzzer::Merger::ParseOrExit(), fuzzer::Printf(), fuzzer::RemoveFile(), fuzzer::TmpDir(), and llvm::to_string().
| void fuzzer::Fuzzer::CrashResistantMergeInternalStep | ( | const std::string & | ControlFilePath | ) |
Definition at line 162 of file FuzzerMerge.cpp.
References fuzzer::TracePC::CollectFeatures(), ExecuteCallback(), fuzzer::F, Features, fuzzer::FileToVector(), i, fuzzer::Printf(), fuzzer::TracePC::ResetMaps(), and fuzzer::TPC.
|
inline |
Definition at line 75 of file FuzzerInternal.h.
Referenced by PrintFinalStats().
| void fuzzer::Fuzzer::ExecuteCallback | ( | const uint8_t * | Data, |
| size_t | Size | ||
| ) |
Definition at line 532 of file FuzzerLoop.cpp.
References fuzzer::AllocTracer, assert(), now(), fuzzer::TracePC::ResetMaps(), fuzzer::MallocFreeTracer::Start(), fuzzer::MallocFreeTracer::Stop(), and fuzzer::TPC.
Referenced by CrashResistantMergeInternalStep(), RunOne(), and ShuffleAndMinimize().
| UnitVector fuzzer::Fuzzer::FindExtraUnits | ( | const UnitVector & | Initial, |
| const UnitVector & | Extra | ||
| ) |
Definition at line 604 of file FuzzerLoop.cpp.
References assert(), fuzzer::TracePC::ResetMaps(), and fuzzer::TPC.
| size_t fuzzer::Fuzzer::GetCurrentUnitInFuzzingThead | ( | const uint8_t ** | Data | ) | const |
Definition at line 526 of file FuzzerLoop.cpp.
References assert().
Referenced by fuzzer::TraceState::TryToAddDesiredData().
|
inline |
Definition at line 97 of file FuzzerInternal.h.
Referenced by LLVMFuzzerMutate().
|
inline |
Definition at line 80 of file FuzzerInternal.h.
| void fuzzer::Fuzzer::HandleMalloc | ( | size_t | Size | ) |
Definition at line 162 of file FuzzerLoop.cpp.
References fuzzer::EF, fuzzer::FuzzingOptions::ErrorExitCode, fuzzer::GetPid(), fuzzer::Printf(), PrintFinalStats(), and fuzzer::FuzzingOptions::RssLimitMb.
Referenced by fuzzer::MallocHook().
|
inline |
Definition at line 106 of file FuzzerInternal.h.
Referenced by fuzzer::TraceState::AddInterestingWord(), and fuzzer::TraceState::TraceMemcmpCallback().
| void fuzzer::Fuzzer::InitializeTraceState | ( | ) |
Definition at line 194 of file FuzzerTraceState.cpp.
References fuzzer::TS, and fuzzer::FuzzingOptions::UseMemcmp.
Referenced by Fuzzer().
| void fuzzer::Fuzzer::Loop | ( | ) |
Definition at line 771 of file FuzzerLoop.cpp.
References llvm::count(), fuzzer::TracePC::InitializePrintNewPCs(), now(), and fuzzer::TPC.
| void fuzzer::Fuzzer::Merge | ( | const std::vector< std::string > & | Corpora | ) |
Definition at line 642 of file FuzzerLoop.cpp.
References assert(), llvm::c_str(), fuzzer::Printf(), and fuzzer::ReadDirToVectorOfUnits().
Definition at line 794 of file FuzzerLoop.cpp.
| void fuzzer::Fuzzer::PrintFinalStats | ( | ) |
Definition at line 380 of file FuzzerLoop.cpp.
References fuzzer::FuzzingOptions::DumpCoverage, fuzzer::TracePC::DumpCoverage(), execPerSec(), fuzzer::GetPeakRSSMb(), fuzzer::FuzzingOptions::PrintCorpusStats, fuzzer::FuzzingOptions::PrintCoverage, fuzzer::TracePC::PrintCoverage(), fuzzer::Printf(), fuzzer::FuzzingOptions::PrintFinalStats, fuzzer::InputCorpus::PrintStats(), and fuzzer::TPC.
Referenced by HandleMalloc(), and RssLimitCallback().
| void fuzzer::Fuzzer::RereadOutputCorpus | ( | size_t | MaxSize | ) |
Definition at line 434 of file FuzzerLoop.cpp.
References fuzzer::InputCorpus::AddToCorpus(), fuzzer::InputCorpus::HasUnit(), fuzzer::FuzzingOptions::OutputCorpus, fuzzer::Printf(), fuzzer::ReadDirToVectorOfUnits(), fuzzer::FuzzingOptions::ReloadIntervalSec, RunOne(), and fuzzer::FuzzingOptions::Verbosity.
| void fuzzer::Fuzzer::ResetCoverage | ( | ) |
Definition at line 765 of file FuzzerLoop.cpp.
Referenced by Fuzzer().
| void fuzzer::Fuzzer::RssLimitCallback | ( | ) |
Definition at line 320 of file FuzzerLoop.cpp.
References fuzzer::EF, fuzzer::FuzzingOptions::ErrorExitCode, fuzzer::GetPeakRSSMb(), fuzzer::GetPid(), fuzzer::Printf(), PrintFinalStats(), and fuzzer::FuzzingOptions::RssLimitMb.
| size_t fuzzer::Fuzzer::RunOne | ( | const uint8_t * | Data, |
| size_t | Size | ||
| ) |
Definition at line 493 of file FuzzerLoop.cpp.
References fuzzer::InputCorpus::AddFeature(), fuzzer::TracePC::CollectFeatures(), ExecuteCallback(), fuzzer::FuzzingOptions::Shrink, and fuzzer::TPC.
Referenced by RereadOutputCorpus(), and ShuffleAndMinimize().
|
inline |
Definition at line 64 of file FuzzerInternal.h.
References llvm::count(), and now().
| void fuzzer::Fuzzer::SetMaxInputLen | ( | size_t | MaxInputLen | ) |
Definition at line 396 of file FuzzerLoop.cpp.
References assert(), and fuzzer::Printf().
| void fuzzer::Fuzzer::SetMaxMutationLen | ( | size_t | MaxMutationLen | ) |
Definition at line 405 of file FuzzerLoop.cpp.
References assert().
| void fuzzer::Fuzzer::ShuffleAndMinimize | ( | UnitVector * | V | ) |
Definition at line 466 of file FuzzerLoop.cpp.
References fuzzer::InputCorpus::AddToCorpus(), fuzzer::Fuzzer::Coverage::BlockCoverage, fuzzer::InputCorpus::empty(), ExecuteCallback(), fuzzer::Printf(), RunOne(), fuzzer::FuzzingOptions::ShuffleAtStartUp, TryDetectingAMemoryLeak(), and fuzzer::FuzzingOptions::Verbosity.
|
static |
Definition at line 254 of file FuzzerLoop.cpp.
|
static |
Definition at line 259 of file FuzzerLoop.cpp.
|
static |
Definition at line 269 of file FuzzerLoop.cpp.
References fuzzer::GetPid(), and fuzzer::Printf().
|
static |
Definition at line 264 of file FuzzerLoop.cpp.
|
inline |
Definition at line 69 of file FuzzerInternal.h.
| void fuzzer::Fuzzer::TryDetectingAMemoryLeak | ( | const uint8_t * | Data, |
| size_t | Size, | ||
| bool | DuringInitialCorpusExecution | ||
| ) |
Definition at line 673 of file FuzzerLoop.cpp.
References fuzzer::EF, and fuzzer::Printf().
Referenced by ShuffleAndMinimize().
1.8.6