diff options
| author | Kostya Serebryany <kcc@google.com> | 2015-05-23 01:22:35 +0000 |
|---|---|---|
| committer | Kostya Serebryany <kcc@google.com> | 2015-05-23 01:22:35 +0000 |
| commit | 7c180eafc12c19342c6606cca88fdcb6967aefac (patch) | |
| tree | b339c475a6e8ea116b9c8ae19cdddd6d2e19c293 /llvm/lib/Fuzzer/FuzzerLoop.cpp | |
| parent | ddf76aa36fdd48e4c8bad9cb069cc5588e0ed149 (diff) | |
| download | bcm5719-llvm-7c180eafc12c19342c6606cca88fdcb6967aefac.tar.gz bcm5719-llvm-7c180eafc12c19342c6606cca88fdcb6967aefac.zip | |
[lib/Fuzzer] fully get rid of std::cerr in libFuzzer
llvm-svn: 238081
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerLoop.cpp')
| -rw-r--r-- | llvm/lib/Fuzzer/FuzzerLoop.cpp | 47 |
1 files changed, 17 insertions, 30 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerLoop.cpp b/llvm/lib/Fuzzer/FuzzerLoop.cpp index d028f193eef..34ceda4fb4d 100644 --- a/llvm/lib/Fuzzer/FuzzerLoop.cpp +++ b/llvm/lib/Fuzzer/FuzzerLoop.cpp @@ -12,7 +12,6 @@ #include "FuzzerInternal.h" #include <sanitizer/coverage_interface.h> #include <algorithm> -#include <iostream> namespace fuzzer { @@ -37,8 +36,7 @@ void Fuzzer::PrintUnitInASCIIOrTokens(const Unit &U, const char *PrintAfter) { } else { auto T = SubstituteTokens(U); T.push_back(0); - std::cerr << T.data(); - std::cerr << PrintAfter; + Printf("%s%s", T.data(), PrintAfter); } } @@ -48,7 +46,7 @@ void Fuzzer::StaticDeathCallback() { } void Fuzzer::DeathCallback() { - std::cerr << "DEATH: " << std::endl; + Printf("DEATH:\n"); Print(CurrentUnit, "\n"); PrintUnitInASCIIOrTokens(CurrentUnit, "\n"); WriteToCrash(CurrentUnit, "crash-"); @@ -65,10 +63,9 @@ void Fuzzer::AlarmCallback() { duration_cast<seconds>(system_clock::now() - UnitStartTime).count(); if (Seconds == 0) return; if (Options.Verbosity >= 2) - std::cerr << "AlarmCallback " << Seconds << "\n"; + Printf("AlarmCallback %zd\n", Seconds); if (Seconds >= (size_t)Options.UnitTimeoutSec) { - std::cerr << "ALARM: working on the last Unit for " << Seconds << " seconds" - << std::endl; + Printf("ALARM: working on the last Unit for %zd seconds\n", Seconds); Print(CurrentUnit, "\n"); PrintUnitInASCIIOrTokens(CurrentUnit, "\n"); WriteToCrash(CurrentUnit, "timeout-"); @@ -80,14 +77,8 @@ void Fuzzer::PrintStats(const char *Where, size_t Cov, const char *End) { if (!Options.Verbosity) return; size_t Seconds = secondsSinceProcessStartUp(); size_t ExecPerSec = (Seconds ? TotalNumberOfRuns / Seconds : 0); - std::cerr - << "#" << TotalNumberOfRuns - << "\t" << Where - << " cov " << Cov - << " bits " << TotalBits() - << " units " << Corpus.size() - << " exec/s " << ExecPerSec - << End; + Printf("#%zd\t%s cov %zd bits %zd units %zd exec/s %zd %s", TotalNumberOfRuns, + Where, Cov, TotalBits(), Corpus.size(), ExecPerSec, End); } void Fuzzer::RereadOutputCorpus() { @@ -101,7 +92,7 @@ void Fuzzer::RereadOutputCorpus() { } if (!Options.Reload) return; if (Options.Verbosity >= 2) - std::cerr << "Reload: read " << AdditionalCorpus.size() << " new units.\n"; + Printf("Reload: read %zd new units.\n", AdditionalCorpus.size()); for (auto &X : AdditionalCorpus) { if (X.size() > (size_t)Options.MaxLen) X.resize(Options.MaxLen); @@ -124,7 +115,7 @@ void Fuzzer::ShuffleAndMinimize() { (Options.PreferSmallDuringInitialShuffle == 1 || (Options.PreferSmallDuringInitialShuffle == -1 && rand() % 2)); if (Options.Verbosity) - std::cerr << "PreferSmall: " << PreferSmall << "\n"; + Printf("PreferSmall: %d\n", PreferSmall); PrintStats("READ ", 0); std::vector<Unit> NewCorpus; std::random_shuffle(Corpus.begin(), Corpus.end()); @@ -143,9 +134,7 @@ void Fuzzer::ShuffleAndMinimize() { MaxCov = NewCoverage; NewCorpus.push_back(U); if (Options.Verbosity >= 2) - std::cerr << "NEW0: " << NewCoverage - << " L " << U.size() - << "\n"; + Printf("NEW0: %zd L %zd\n", NewCoverage, U.size()); } } } @@ -168,8 +157,7 @@ size_t Fuzzer::RunOne(const Unit &U) { duration_cast<seconds>(UnitStopTime - UnitStartTime).count(); if (TimeOfUnit > TimeOfLongestUnitInSeconds) { TimeOfLongestUnitInSeconds = TimeOfUnit; - std::cerr << "Longest unit: " << TimeOfLongestUnitInSeconds - << " s:\n"; + Printf("Longest unit: %zd s:\n", TimeOfLongestUnitInSeconds); Print(U, "\n"); } return Res; @@ -255,14 +243,13 @@ void Fuzzer::WriteToOutputCorpus(const Unit &U) { std::string Path = DirPlusFile(Options.OutputCorpus, Hash(U)); WriteToFile(U, Path); if (Options.Verbosity >= 2) - std::cerr << "Written to " << Path << std::endl; + Printf("Written to %s\n", Path.c_str()); } void Fuzzer::WriteToCrash(const Unit &U, const char *Prefix) { std::string Path = Prefix + Hash(U); WriteToFile(U, Path); - std::cerr << "CRASHED; file written to " << Path << std::endl; - std::cerr << "Base64: "; + Printf("CRASHED; file written to %s\nBase64: ", Path.c_str()); PrintFileAsBase64(Path); } @@ -271,8 +258,8 @@ void Fuzzer::SaveCorpus() { for (const auto &U : Corpus) WriteToFile(U, DirPlusFile(Options.OutputCorpus, Hash(U))); if (Options.Verbosity) - std::cerr << "Written corpus of " << Corpus.size() << " files to " - << Options.OutputCorpus << "\n"; + Printf("Written corpus of %zd files to %s\n", Corpus.size(), + Options.OutputCorpus.c_str()); } void Fuzzer::ReportNewCoverage(size_t NewCoverage, const Unit &U) { @@ -281,13 +268,13 @@ void Fuzzer::ReportNewCoverage(size_t NewCoverage, const Unit &U) { UnitHashesAddedToCorpus.insert(Hash(U)); PrintStats("NEW ", NewCoverage, ""); if (Options.Verbosity) { - std::cerr << " L: " << U.size(); + Printf(" L: %zd", U.size()); if (U.size() < 30) { - std::cerr << " "; + Printf(" "); PrintUnitInASCIIOrTokens(U, "\t"); Print(U); } - std::cerr << "\n"; + Printf("\n"); } WriteToOutputCorpus(U); if (Options.ExitOnFirst) |

