Struct libafl::schedulers::accounting::CoverageAccountingScheduler
source · pub struct CoverageAccountingScheduler<'a, CS>where
CS: UsesState,
CS::State: Debug,{ /* private fields */ }
Expand description
A minimizer scheduler using coverage accounting
Implementations§
source§impl<'a, CS> CoverageAccountingScheduler<'a, CS>where
CS: Scheduler,
CS::State: HasCorpus + HasMetadata + HasRand + Debug,
<CS::State as UsesInput>::Input: HasLen,
impl<'a, CS> CoverageAccountingScheduler<'a, CS>where
CS: Scheduler,
CS::State: HasCorpus + HasMetadata + HasRand + Debug,
<CS::State as UsesInput>::Input: HasLen,
sourcepub fn update_accounting_score(
&self,
state: &mut CS::State,
idx: CorpusId
) -> Result<(), Error>
pub fn update_accounting_score(
&self,
state: &mut CS::State,
idx: CorpusId
) -> Result<(), Error>
Update the Corpus
score
sourcepub fn new(state: &mut CS::State, base: CS, accounting_map: &'a [u32]) -> Self
pub fn new(state: &mut CS::State, base: CS, accounting_map: &'a [u32]) -> Self
Creates a new CoverageAccountingScheduler
that wraps a base
Scheduler
and has a default probability to skip non-faved Testcase
s of DEFAULT_SKIP_NON_FAVORED_PROB
.
sourcepub fn with_skip_prob(
state: &mut CS::State,
base: CS,
skip_non_favored_prob: u64,
accounting_map: &'a [u32]
) -> Self
pub fn with_skip_prob(
state: &mut CS::State,
base: CS,
skip_non_favored_prob: u64,
accounting_map: &'a [u32]
) -> Self
Creates a new CoverageAccountingScheduler
that wraps a base
Scheduler
and has a non-default probability to skip non-faved Testcase
s using (skip_non_favored_prob
).
Trait Implementations§
source§impl<'a, CS> Debug for CoverageAccountingScheduler<'a, CS>where
CS: UsesState + Debug,
CS::State: Debug,
impl<'a, CS> Debug for CoverageAccountingScheduler<'a, CS>where
CS: UsesState + Debug,
CS::State: Debug,
source§impl<'a, CS> Scheduler for CoverageAccountingScheduler<'a, CS>where
CS: Scheduler,
CS::State: HasCorpus + HasMetadata + HasRand + Debug,
<CS::State as UsesInput>::Input: HasLen,
impl<'a, CS> Scheduler for CoverageAccountingScheduler<'a, CS>where
CS: Scheduler,
CS::State: HasCorpus + HasMetadata + HasRand + Debug,
<CS::State as UsesInput>::Input: HasLen,
source§fn on_add(&self, state: &mut Self::State, idx: CorpusId) -> Result<(), Error>
fn on_add(&self, state: &mut Self::State, idx: CorpusId) -> Result<(), Error>
Added an entry to the corpus at the given index
source§fn on_replace(
&self,
state: &mut Self::State,
idx: CorpusId,
testcase: &Testcase<<Self::State as UsesInput>::Input>
) -> Result<(), Error>
fn on_replace(
&self,
state: &mut Self::State,
idx: CorpusId,
testcase: &Testcase<<Self::State as UsesInput>::Input>
) -> Result<(), Error>
Replaced the given testcase at the given idx
Auto Trait Implementations§
impl<'a, CS> RefUnwindSafe for CoverageAccountingScheduler<'a, CS>where
CS: RefUnwindSafe,
<CS as UsesState>::State: RefUnwindSafe,
impl<'a, CS> Send for CoverageAccountingScheduler<'a, CS>where
CS: Send,
<CS as UsesState>::State: Send,
impl<'a, CS> Sync for CoverageAccountingScheduler<'a, CS>where
CS: Sync,
<CS as UsesState>::State: Sync,
impl<'a, CS> Unpin for CoverageAccountingScheduler<'a, CS>where
CS: Unpin,
<CS as UsesState>::State: Unpin,
impl<'a, CS> UnwindSafe for CoverageAccountingScheduler<'a, CS>where
CS: UnwindSafe,
<CS as UsesState>::State: UnwindSafe,
Blanket Implementations§
source§impl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
§type PreprendResult = Tail
type PreprendResult = Tail
The Resulting
TupleList
, of an Prepend::prepend()
call,
including the prepended entry.source§fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
Prepend a value to this tuple, returning a new tuple with prepended value.