diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2016-01-13 19:58:01 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2016-01-13 19:58:01 +0000 |
commit | 050e163ae8b4bb6eb252b59e2f8f36e68ae9239d (patch) | |
tree | 7376a0c71aad05d327e5b1dcbceb3311a10f9f29 /lib/Fuzzer/FuzzerLoop.cpp | |
parent | 8a6c1c25bce0267ee4072bd7b786b921e8a66a35 (diff) |
Notes
Diffstat (limited to 'lib/Fuzzer/FuzzerLoop.cpp')
-rw-r--r-- | lib/Fuzzer/FuzzerLoop.cpp | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/lib/Fuzzer/FuzzerLoop.cpp b/lib/Fuzzer/FuzzerLoop.cpp index 0b1d9d9686a2..5237682ff24d 100644 --- a/lib/Fuzzer/FuzzerLoop.cpp +++ b/lib/Fuzzer/FuzzerLoop.cpp @@ -390,7 +390,6 @@ void Fuzzer::MutateAndTestOne() { U = ChooseUnitToMutate(); for (int i = 0; i < Options.MutateDepth; i++) { - StartTraceRecording(); size_t Size = U.size(); U.resize(Options.MaxLen); size_t NewSize = USF.Mutate(U.data(), Size, U.size()); @@ -398,21 +397,10 @@ void Fuzzer::MutateAndTestOne() { assert(NewSize <= (size_t)Options.MaxLen && "Mutator return overisized unit"); U.resize(NewSize); + if (i == 0) + StartTraceRecording(); RunOneAndUpdateCorpus(U); - size_t NumTraceBasedMutations = StopTraceRecording(); - size_t TBMWidth = - std::min((size_t)Options.TBMWidth, NumTraceBasedMutations); - size_t TBMDepth = - std::min((size_t)Options.TBMDepth, NumTraceBasedMutations); - Unit BackUp = U; - for (size_t w = 0; w < TBMWidth; w++) { - U = BackUp; - for (size_t d = 0; d < TBMDepth; d++) { - TotalNumberOfExecutedTraceBasedMutations++; - ApplyTraceBasedMutation(USF.GetRand()(NumTraceBasedMutations), &U); - RunOneAndUpdateCorpus(U); - } - } + StopTraceRecording(); } } @@ -467,12 +455,15 @@ void Fuzzer::Drill() { PrintStats("REINIT"); SavedOutputCorpusPath.swap(Options.OutputCorpus); - for (auto &U : SavedCorpus) + for (auto &U : SavedCorpus) { + CurrentUnit = U; RunOne(U); + } PrintStats("MERGE "); Options.PrintNEW = true; size_t NumMerged = 0; for (auto &U : Corpus) { + CurrentUnit = U; if (RunOne(U)) { PrintStatusForNewUnit(U); NumMerged++; |