void Fuzzer::PrintStats(const char *Where, const char *End) { size_t ExecPerSec = execPerSec(); if (Options.OutputCSV) { static bool csvHeaderPrinted = false; if (!csvHeaderPrinted) { csvHeaderPrinted = true; Printf("runs,block_cov,bits,cc_cov,corpus,execs_per_sec,tbms,reason\n"); } Printf("%zd,%zd,%zd,%zd,%zd,%zd,%s\n", TotalNumberOfRuns, MaxCoverage.BlockCoverage, MaxCoverage.CounterBitmapBits, MaxCoverage.CallerCalleeCoverage, Corpus.size(), ExecPerSec, Where); } if (!Options.Verbosity) return; Printf("#%zd\t%s", TotalNumberOfRuns, Where); if (MaxCoverage.BlockCoverage) Printf(" cov: %zd", MaxCoverage.BlockCoverage); if (MaxCoverage.PcMapBits) Printf(" path: %zd", MaxCoverage.PcMapBits); if (auto TB = MaxCoverage.CounterBitmapBits) Printf(" bits: %zd", TB); if (MaxCoverage.CallerCalleeCoverage) Printf(" indir: %zd", MaxCoverage.CallerCalleeCoverage); Printf(" units: %zd exec/s: %zd", Corpus.size(), ExecPerSec); Printf("%s", End); }
void Fuzzer::PrintStats(const char *Where, const char *End) { size_t ExecPerSec = execPerSec(); if (Options.OutputCSV) { static bool csvHeaderPrinted = false; if (!csvHeaderPrinted) { csvHeaderPrinted = true; Printf("runs,block_cov,bits,cc_cov,corpus,execs_per_sec,tbms,reason\n"); } Printf("%zd,%zd,%zd,%zd,%zd,%zd,%zd,%s\n", TotalNumberOfRuns, LastRecordedBlockCoverage, TotalBits(), LastRecordedCallerCalleeCoverage, Corpus.size(), ExecPerSec, TotalNumberOfExecutedTraceBasedMutations, Where); } if (!Options.Verbosity) return; Printf("#%zd\t%s", TotalNumberOfRuns, Where); if (LastRecordedBlockCoverage) Printf(" cov: %zd", LastRecordedBlockCoverage); if (LastRecordedPcMapSize) Printf(" path: %zd", LastRecordedPcMapSize); if (auto TB = TotalBits()) Printf(" bits: %zd", TB); if (LastRecordedCallerCalleeCoverage) Printf(" indir: %zd", LastRecordedCallerCalleeCoverage); Printf(" units: %zd exec/s: %zd", Corpus.size(), ExecPerSec); if (TotalNumberOfExecutedTraceBasedMutations) Printf(" tbm: %zd", TotalNumberOfExecutedTraceBasedMutations); Printf("%s", End); }
void Fuzzer::PrintFinalStats() { if (!Options.PrintFinalStats) return; size_t ExecPerSec = execPerSec(); Printf("stat::number_of_executed_units: %zd\n", TotalNumberOfRuns); Printf("stat::average_exec_per_sec: %zd\n", ExecPerSec); Printf("stat::new_units_added: %zd\n", NumberOfNewUnitsAdded); Printf("stat::slowest_unit_time_sec: %zd\n", TimeOfLongestUnitInSeconds); Printf("stat::peak_rss_mb: %zd\n", GetPeakRSSMb()); }