diff options
Diffstat (limited to 'lib/Fuzzer/FuzzerInternal.h')
-rw-r--r-- | lib/Fuzzer/FuzzerInternal.h | 41 |
1 files changed, 4 insertions, 37 deletions
diff --git a/lib/Fuzzer/FuzzerInternal.h b/lib/Fuzzer/FuzzerInternal.h index 0d2c7a78aca81..c26615631ecd0 100644 --- a/lib/Fuzzer/FuzzerInternal.h +++ b/lib/Fuzzer/FuzzerInternal.h @@ -32,26 +32,6 @@ using namespace std::chrono; class Fuzzer { public: - // Aggregates all available coverage measurements. - struct Coverage { - Coverage() { Reset(); } - - void Reset() { - BlockCoverage = 0; - CallerCalleeCoverage = 0; - CounterBitmapBits = 0; - CounterBitmap.clear(); - VPMap.Reset(); - } - - size_t BlockCoverage; - size_t CallerCalleeCoverage; - // Precalculated number of bits in CounterBitmap. - size_t CounterBitmapBits; - std::vector<uint8_t> CounterBitmap; - ValueBitMap VPMap; - }; - Fuzzer(UserCallback CB, InputCorpus &Corpus, MutationDispatcher &MD, FuzzingOptions Options); ~Fuzzer(); @@ -90,25 +70,23 @@ public: // Merge Corpora[1:] into Corpora[0]. void Merge(const std::vector<std::string> &Corpora); void CrashResistantMerge(const std::vector<std::string> &Args, - const std::vector<std::string> &Corpora); + const std::vector<std::string> &Corpora, + const char *CoverageSummaryInputPathOrNull, + const char *CoverageSummaryOutputPathOrNull); void CrashResistantMergeInternalStep(const std::string &ControlFilePath); - // Returns a subset of 'Extra' that adds coverage to 'Initial'. - UnitVector FindExtraUnits(const UnitVector &Initial, const UnitVector &Extra); MutationDispatcher &GetMD() { return MD; } void PrintFinalStats(); void SetMaxInputLen(size_t MaxInputLen); void SetMaxMutationLen(size_t MaxMutationLen); void RssLimitCallback(); - // Public for tests. - void ResetCoverage(); - bool InFuzzingThread() const { return IsMyThread; } size_t GetCurrentUnitInFuzzingThead(const uint8_t **Data) const; void TryDetectingAMemoryLeak(const uint8_t *Data, size_t Size, bool DuringInitialCorpusExecution); void HandleMalloc(size_t Size); + void AnnounceOutput(const uint8_t *Data, size_t Size); private: void AlarmCallback(); @@ -134,16 +112,10 @@ private: // Stop tracing. void StopTraceRecording(); - void SetDeathCallback(); static void StaticDeathCallback(); void DumpCurrentUnit(const char *Prefix); void DeathCallback(); - void ResetEdgeCoverage(); - void ResetCounters(); - void PrepareCounters(Fuzzer::Coverage *C); - bool RecordMaxCoverage(Fuzzer::Coverage *C); - void AllocateCurrentUnitData(); uint8_t *CurrentUnitData = nullptr; std::atomic<size_t> CurrentUnitSize; @@ -166,16 +138,11 @@ private: long TimeOfLongestUnitInSeconds = 0; long EpochOfLastReadOfOutputCorpus = 0; - // Maximum recorded coverage. - Coverage MaxCoverage; - size_t MaxInputLen = 0; size_t MaxMutationLen = 0; // Need to know our own thread. static thread_local bool IsMyThread; - - bool InMergeMode = false; }; }; // namespace fuzzer |