mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 19:08:08 +00:00
fix exec/s display
This commit is contained in:
@ -630,6 +630,10 @@ u8 *stringify_float(u8 *buf, size_t len, double val) {
|
|||||||
|
|
||||||
snprintf(buf, len, "%0.01f", val);
|
snprintf(buf, len, "%0.01f", val);
|
||||||
|
|
||||||
|
} else if (unlikely(isnan(val) || isinf(val))) {
|
||||||
|
|
||||||
|
strcpy(buf, "inf");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
stringify_int(buf, len, (u64)val);
|
stringify_int(buf, len, (u64)val);
|
||||||
@ -789,9 +793,9 @@ u8 *u_stringify_float(u8 *buf, double val) {
|
|||||||
|
|
||||||
sprintf(buf, "%0.01f", val);
|
sprintf(buf, "%0.01f", val);
|
||||||
|
|
||||||
} else if (unlikely(isnan(val) || isfinite(val))) {
|
} else if (unlikely(isnan(val) || isinf(val))) {
|
||||||
|
|
||||||
strcpy(buf, "999.9");
|
strcpy(buf, "infinite");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ void afl_state_init(afl_state_t *afl, uint32_t map_size) {
|
|||||||
afl->cal_cycles_long = CAL_CYCLES_LONG;
|
afl->cal_cycles_long = CAL_CYCLES_LONG;
|
||||||
afl->hang_tmout = EXEC_TIMEOUT;
|
afl->hang_tmout = EXEC_TIMEOUT;
|
||||||
afl->stats_update_freq = 1;
|
afl->stats_update_freq = 1;
|
||||||
afl->stats_avg_exec = -1;
|
afl->stats_avg_exec = 0;
|
||||||
afl->skip_deterministic = 1;
|
afl->skip_deterministic = 1;
|
||||||
#ifndef NO_SPLICING
|
#ifndef NO_SPLICING
|
||||||
afl->use_splicing = 1;
|
afl->use_splicing = 1;
|
||||||
|
@ -369,30 +369,37 @@ void show_stats(afl_state_t *afl) {
|
|||||||
|
|
||||||
/* Calculate smoothed exec speed stats. */
|
/* Calculate smoothed exec speed stats. */
|
||||||
|
|
||||||
if (!afl->stats_last_execs) {
|
if (unlikely(!afl->stats_last_execs)) {
|
||||||
|
|
||||||
if (unlikely(cur_ms == afl->start_time)) --afl->start_time;
|
if (likely(cur_ms != afl->start_time)) {
|
||||||
|
|
||||||
afl->stats_avg_exec =
|
afl->stats_avg_exec =
|
||||||
((double)afl->fsrv.total_execs) * 1000 / (cur_ms - afl->start_time);
|
((double)afl->fsrv.total_execs) * 1000 / (cur_ms - afl->start_time);
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
double cur_avg = ((double)(afl->fsrv.total_execs - afl->stats_last_execs)) *
|
|
||||||
1000 / (cur_ms - afl->stats_last_ms);
|
|
||||||
|
|
||||||
/* If there is a dramatic (5x+) jump in speed, reset the indicator
|
|
||||||
more quickly. */
|
|
||||||
|
|
||||||
if (cur_avg * 5 < afl->stats_avg_exec ||
|
|
||||||
cur_avg / 5 > afl->stats_avg_exec) {
|
|
||||||
|
|
||||||
afl->stats_avg_exec = cur_avg;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
afl->stats_avg_exec = afl->stats_avg_exec * (1.0 - 1.0 / AVG_SMOOTHING) +
|
} else {
|
||||||
cur_avg * (1.0 / AVG_SMOOTHING);
|
|
||||||
|
if (likely(cur_ms != afl->stats_last_ms)) {
|
||||||
|
|
||||||
|
double cur_avg =
|
||||||
|
((double)(afl->fsrv.total_execs - afl->stats_last_execs)) * 1000 /
|
||||||
|
(cur_ms - afl->stats_last_ms);
|
||||||
|
|
||||||
|
/* If there is a dramatic (5x+) jump in speed, reset the indicator
|
||||||
|
more quickly. */
|
||||||
|
|
||||||
|
if (cur_avg * 5 < afl->stats_avg_exec ||
|
||||||
|
cur_avg / 5 > afl->stats_avg_exec) {
|
||||||
|
|
||||||
|
afl->stats_avg_exec = cur_avg;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
afl->stats_avg_exec = afl->stats_avg_exec * (1.0 - 1.0 / AVG_SMOOTHING) +
|
||||||
|
cur_avg * (1.0 / AVG_SMOOTHING);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user