| 18 | |
| 19 | #[derive(Copy, Clone)] |
| 20 | pub(crate) struct Monitor { |
| 21 | /// The total number of executions that the fuzzer has done |
| 22 | pub total_executions: u64, |
| 23 | |
| 24 | /// The number of crashes that the fuzzer has seen |
| 25 | pub crashes: u64, |
| 26 | |
| 27 | /// The number of times a timeout has been hit |
| 28 | pub timeouts: u64, |
| 29 | |
| 30 | /// The number of unique blocks that the fuzzer has seen with any input |
| 31 | pub blocks_seen: u64, |
| 32 | |
| 33 | /// An instant that keeps track of when the fuzzer start. |
| 34 | pub start_time: Instant, |
| 35 | |
| 36 | /// The last time we wrote the stats to a file. |
| 37 | pub last_log_time: Instant, |
| 38 | |
| 39 | /// The amount of time to wait before writing current stats to a file. |
| 40 | pub log_rate: Duration, |
| 41 | |
| 42 | /// The time it took to execute the slowest input. |
| 43 | pub max_duration: Duration, |
| 44 | |
| 45 | /// The maximum number of instructions executed by a single test case. |
| 46 | pub max_instructions: u64, |
| 47 | |
| 48 | /// The last point in time that we got new coverage |
| 49 | pub last_coverage_increase: Instant, |
| 50 | |
| 51 | /// The last time that we displayed output. |
| 52 | pub last_report: Instant, |
| 53 | |
| 54 | /// The total executions the last time we displayed output. |
| 55 | pub last_exec_count: u64, |
| 56 | |
| 57 | /// The total number of dictionary items the last time we saved the fuzzer dictionary. |
| 58 | pub last_dict_items: usize, |
| 59 | |
| 60 | /// The ID of the current input. |
| 61 | pub input_id: usize, |
| 62 | |
| 63 | /// The current stage. |
| 64 | pub stage: Stage, |
| 65 | } |
| 66 | |
| 67 | impl Monitor { |
| 68 | pub fn new() -> Self { |
nothing calls this directly
no outgoing calls
no test coverage detected