16 for (uint8_t i = 0; i < num_of_mutation; i++) {
17 switch (mutation_config) {
33 if (fuzzer_data.
calldata.size() > 0) {
void mutate_calldata_vec(std::vector< bb::avm2::FF > &calldata, std::mt19937_64 &rng)
T select(std::mt19937_64 &rng) const
constexpr ReturnOptionsMutationConfig BASIC_RETURN_OPTIONS_MUTATION_CONFIGURATION
constexpr uint8_t MAX_MUTATION_NUM
constexpr FuzzerDataMutationConfig BASIC_FUZZER_DATA_MUTATION_CONFIGURATION
@ ControlFlowCommandMutation
constexpr VecMutationConfig BASIC_VEC_MUTATION_CONFIGURATION
void mutate_control_flow_vec(std::vector< CFGInstruction > &control_flow_vec, std::mt19937_64 &rng)
void mutate_fuzzer_data(FuzzerData &fuzzer_data, std::mt19937_64 &rng)
std::vector< FuzzInstruction > generate_instruction_block(std::mt19937_64 &rng)
void mutate_instruction_block(std::vector< FuzzInstruction > &instruction_block, std::mt19937_64 &rng)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
void mutate_return_options(ReturnOptions &return_options, std::mt19937_64 &rng, const ReturnOptionsMutationConfig &config)
describes the data which will be used for fuzzing Should contain instructions, calldata,...
ReturnOptions return_options
std::vector< bb::avm2::FF > calldata
std::vector< CFGInstruction > cfg_instructions
std::vector< std::vector< FuzzInstruction > > instruction_blocks