mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 02:58:08 +00:00
Added flag -u to allow custom interval to update fuzzer_stats file
This commit is contained in:
@ -693,6 +693,7 @@ typedef struct afl_state {
|
|||||||
|
|
||||||
/* statistics file */
|
/* statistics file */
|
||||||
double last_bitmap_cvg, last_stability, last_eps;
|
double last_bitmap_cvg, last_stability, last_eps;
|
||||||
|
u64 stats_file_update_freq_msecs; /* Stats update frequency (msecs) */
|
||||||
|
|
||||||
/* plot file saves from last run */
|
/* plot file saves from last run */
|
||||||
u32 plot_prev_qp, plot_prev_pf, plot_prev_pnf, plot_prev_ce, plot_prev_md;
|
u32 plot_prev_qp, plot_prev_pf, plot_prev_pnf, plot_prev_ce, plot_prev_md;
|
||||||
|
@ -100,6 +100,7 @@ void afl_state_init(afl_state_t *afl, uint32_t map_size) {
|
|||||||
afl->hang_tmout = EXEC_TIMEOUT;
|
afl->hang_tmout = EXEC_TIMEOUT;
|
||||||
afl->exit_on_time = 0;
|
afl->exit_on_time = 0;
|
||||||
afl->stats_update_freq = 1;
|
afl->stats_update_freq = 1;
|
||||||
|
afl->stats_file_update_freq_msecs = STATS_UPDATE_SEC * 1000;
|
||||||
afl->stats_avg_exec = 0;
|
afl->stats_avg_exec = 0;
|
||||||
afl->skip_deterministic = 1;
|
afl->skip_deterministic = 1;
|
||||||
afl->sync_time = SYNC_TIME;
|
afl->sync_time = SYNC_TIME;
|
||||||
|
@ -613,7 +613,7 @@ void show_stats_normal(afl_state_t *afl) {
|
|||||||
|
|
||||||
if (unlikely(!afl->non_instrumented_mode &&
|
if (unlikely(!afl->non_instrumented_mode &&
|
||||||
(afl->force_ui_update ||
|
(afl->force_ui_update ||
|
||||||
cur_ms - afl->stats_last_stats_ms > STATS_UPDATE_SEC * 1000))) {
|
cur_ms - afl->stats_last_stats_ms > afl->stats_file_update_freq_msecs))) {
|
||||||
|
|
||||||
afl->stats_last_stats_ms = cur_ms;
|
afl->stats_last_stats_ms = cur_ms;
|
||||||
write_stats_file(afl, t_bytes, t_byte_ratio, stab_ratio,
|
write_stats_file(afl, t_bytes, t_byte_ratio, stab_ratio,
|
||||||
|
@ -210,7 +210,10 @@ static void usage(u8 *argv0, int more_help) {
|
|||||||
" -b cpu_id - bind the fuzzing process to the specified CPU core "
|
" -b cpu_id - bind the fuzzing process to the specified CPU core "
|
||||||
"(0-...)\n"
|
"(0-...)\n"
|
||||||
" -e ext - file extension for the fuzz test input file (if "
|
" -e ext - file extension for the fuzz test input file (if "
|
||||||
"needed)\n\n",
|
"needed)\n"
|
||||||
|
" -u - interval to update fuzzer_stats file in seconds, "
|
||||||
|
"defaults to 60 sec\n"
|
||||||
|
"\n",
|
||||||
argv0, EXEC_TIMEOUT, MEM_LIMIT, MAX_FILE, FOREIGN_SYNCS_MAX);
|
argv0, EXEC_TIMEOUT, MEM_LIMIT, MAX_FILE, FOREIGN_SYNCS_MAX);
|
||||||
|
|
||||||
if (more_help > 1) {
|
if (more_help > 1) {
|
||||||
@ -501,7 +504,7 @@ fail:
|
|||||||
int main(int argc, char **argv_orig, char **envp) {
|
int main(int argc, char **argv_orig, char **envp) {
|
||||||
|
|
||||||
s32 opt, auto_sync = 0 /*, user_set_cache = 0*/;
|
s32 opt, auto_sync = 0 /*, user_set_cache = 0*/;
|
||||||
u64 prev_queued = 0;
|
u64 prev_queued = 0, stats_update_freq_sec = 0;
|
||||||
u32 sync_interval_cnt = 0, seek_to = 0, show_help = 0, default_output = 1,
|
u32 sync_interval_cnt = 0, seek_to = 0, show_help = 0, default_output = 1,
|
||||||
map_size = get_map_size();
|
map_size = get_map_size();
|
||||||
u8 *extras_dir[4];
|
u8 *extras_dir[4];
|
||||||
@ -553,7 +556,7 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
while (
|
while (
|
||||||
(opt = getopt(
|
(opt = getopt(
|
||||||
argc, argv,
|
argc, argv,
|
||||||
"+Ab:B:c:CdDe:E:hi:I:f:F:g:G:l:L:m:M:nNOo:p:RQs:S:t:T:UV:WXx:YZ")) >
|
"+Ab:B:c:CdDe:E:hi:I:f:F:g:G:l:L:m:M:nNOo:p:RQs:S:t:T:u:UV:WXx:YZ")) >
|
||||||
0) {
|
0) {
|
||||||
|
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
@ -665,6 +668,14 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'u':
|
||||||
|
if (sscanf(optarg, "%llu", &stats_update_freq_sec) < 1) {
|
||||||
|
FATAL("Bad syntax used for -u");
|
||||||
|
}
|
||||||
|
|
||||||
|
afl->stats_file_update_freq_msecs = stats_update_freq_sec * 1000;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'i': /* input dir */
|
case 'i': /* input dir */
|
||||||
|
|
||||||
if (afl->in_dir) { FATAL("Multiple -i options not supported"); }
|
if (afl->in_dir) { FATAL("Multiple -i options not supported"); }
|
||||||
|
Reference in New Issue
Block a user