aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/afl-fuzz.h3
-rw-r--r--src/afl-fuzz-queue.c1
-rw-r--r--src/afl-fuzz-stats.c4
3 files changed, 7 insertions, 1 deletions
diff --git a/include/afl-fuzz.h b/include/afl-fuzz.h
index e94f389a..880b8d50 100644
--- a/include/afl-fuzz.h
+++ b/include/afl-fuzz.h
@@ -704,6 +704,9 @@ typedef struct afl_state {
/* How many queue entries currently have cached testcases */
u32 q_testcase_cache_count;
+ /* How often did we evict from the cache */
+ u32 q_testcase_evictions;
+
/* Refs to each queue entry with cached testcase (for eviction, if cache_count
* is too large) */
struct queue_entry *q_testcase_cache[TESTCASE_ENTRIES];
diff --git a/src/afl-fuzz-queue.c b/src/afl-fuzz-queue.c
index f8034ebd..e0df7206 100644
--- a/src/afl-fuzz-queue.c
+++ b/src/afl-fuzz-queue.c
@@ -996,6 +996,7 @@ inline u8 *queue_testcase_get(afl_state_t *afl, struct queue_entry *q) {
afl->q_testcase_cache_size -= old_cached->len;
afl->q_testcase_cache[tid] = NULL;
--afl->q_testcase_cache_count;
+ ++afl->q_testcase_evictions;
}
diff --git a/src/afl-fuzz-stats.c b/src/afl-fuzz-stats.c
index 4f0cab4c..d213d054 100644
--- a/src/afl-fuzz-stats.c
+++ b/src/afl-fuzz-stats.c
@@ -167,6 +167,7 @@ void write_stats_file(afl_state_t *afl, double bitmap_cvg, double stability,
"havoc_expansion : %u\n"
"testcache_size : %llu\n"
"testcache_count : %u\n"
+ "testcache_evict : %u\n"
"afl_banner : %s\n"
"afl_version : " VERSION
"\n"
@@ -202,7 +203,8 @@ void write_stats_file(afl_state_t *afl, double bitmap_cvg, double stability,
#endif
t_bytes, afl->var_byte_count, afl->expand_havoc,
afl->q_testcase_cache_size, afl->q_testcase_cache_count,
- afl->use_banner, afl->unicorn_mode ? "unicorn" : "",
+ afl->q_testcase_evictions, afl->use_banner,
+ afl->unicorn_mode ? "unicorn" : "",
afl->fsrv.qemu_mode ? "qemu " : "",
afl->non_instrumented_mode ? " non_instrumented " : "",
afl->no_forkserver ? "no_fsrv " : "", afl->crash_mode ? "crash " : "",