afl-fuzz.c
static void maybe_update_plot_file(double bitmap_cvg, double eps) {

  static u32 prev_qp, prev_pf, prev_pnf, prev_ce, prev_md;
  static u64 prev_qc, prev_uc, prev_uh;

  if (prev_qp == queued_paths && prev_pf == pending_favored &&
      prev_pnf == pending_not_fuzzed && prev_ce == current_entry &&
      prev_qc == queue_cycle && prev_uc == unique_crashes &&
      prev_uh == unique_hangs && prev_md == max_depth) return;

  prev_qp  = queued_paths;
  prev_pf  = pending_favored;
  prev_pnf = pending_not_fuzzed;
  prev_ce  = current_entry;
  prev_qc  = queue_cycle;
  prev_uc  = unique_crashes;
  prev_uh  = unique_hangs;
  prev_md  = max_depth;

  /* Fields in the file:

     unix_time, cycles_done, cur_path, case_total, paths_total, paths_not_fuzzed,
     favored_not_fuzzed, unique_crashes, unique_hangs, max_depth,
     execs_per_sec */

  fprintf(plot_file,
          "%llu, %llu, %u, %u, %u, %u, %u, %0.02f%%, %llu, %llu, %u, %0.02f\n",
          get_cur_time() / 1000, queue_cycle - 1, current_entry, queued_paths_total, queued_paths,
          pending_not_fuzzed, pending_favored, bitmap_cvg, unique_crashes,
          unique_hangs, max_depth, eps); /* ignore errors */

  fflush(plot_file);

}
/* Update the plot file if there is a reason to. */
Update the plot file if there is a reason to.
Update the plot file if there is a reason to .
static void maybe_update_plot_file(double bitmap_cvg, double eps) {
  static u32 prev_qp, prev_pf, prev_pnf, prev_ce, prev_md;
  static u64 prev_qc, prev_uc, prev_uh;
  if (prev_qp == queued_paths && prev_pf == pending_favored &&
      prev_pnf == pending_not_fuzzed && prev_ce == current_entry &&
      prev_qc == queue_cycle && prev_uc == unique_crashes &&
      prev_uh == unique_hangs && prev_md == max_depth) return;
  prev_qp  = queued_paths;
  prev_pf  = pending_favored;
  prev_pnf = pending_not_fuzzed;
  prev_ce  = current_entry;
  prev_qc  = queue_cycle;
  prev_uc  = unique_crashes;
  prev_uh  = unique_hangs;
  prev_md  = max_depth;
  fprintf(plot_file,
          "%llu, %llu, %u, %u, %u, %u, %u, %0.02f%%, %llu, %llu, %u, %0.02f\n",
          get_cur_time() / 1000, queue_cycle - 1, current_entry, queued_paths_total, queued_paths,
          pending_not_fuzzed, pending_favored, bitmap_cvg, unique_crashes,
          unique_hangs, max_depth, eps); 
  fflush(plot_file);
}
static void maybe_update_plot_file ( double bitmap_cvg , double eps ) { static u32 prev_qp , prev_pf , prev_pnf , prev_ce , prev_md ; static u64 prev_qc , prev_uc , prev_uh ; if ( prev_qp == queued_paths && prev_pf == pending_favored && prev_pnf == pending_not_fuzzed && prev_ce == current_entry && prev_qc == queue_cycle && prev_uc == unique_crashes && prev_uh == unique_hangs && prev_md == max_depth ) return ; prev_qp = queued_paths ; prev_pf = pending_favored ; prev_pnf = pending_not_fuzzed ; prev_ce = current_entry ; prev_qc = queue_cycle ; prev_uc = unique_crashes ; prev_uh = unique_hangs ; prev_md = max_depth ; fprintf ( plot_file , " \n " , get_cur_time ( ) / 1000 , queue_cycle - 1 , current_entry , queued_paths_total , queued_paths , pending_not_fuzzed , pending_favored , bitmap_cvg , unique_crashes , unique_hangs , max_depth , eps ) ; fflush ( plot_file ) ; }
Update the plot file if there is a reason to.
Update the plot file if there is a reason to .
/* Fields in the file:

     unix_time, cycles_done, cur_path, case_total, paths_total, paths_not_fuzzed,
     favored_not_fuzzed, unique_crashes, unique_hangs, max_depth,
     execs_per_sec */ /* ignore errors */