Struct libafl::executors::inprocess::InProcessExecutor [−][src]
pub struct InProcessExecutor<'a, H, I, OT, S> where
H: FnMut(&I) -> ExitKind,
I: Input,
OT: ObserversTuple<I, S>, { /* fields omitted */ }
Expand description
The inmem executor simply calls a target function, then returns afterwards.
Implementations
impl<'a, H, I, OT, S> InProcessExecutor<'a, H, I, OT, S> where
H: FnMut(&I) -> ExitKind,
I: Input,
OT: ObserversTuple<I, S>,
impl<'a, H, I, OT, S> InProcessExecutor<'a, H, I, OT, S> where
H: FnMut(&I) -> ExitKind,
I: Input,
OT: ObserversTuple<I, S>,
pub fn new<EM, OC, OF, Z>(
harness_fn: &'a mut H,
observers: OT,
_fuzzer: &mut Z,
_state: &mut S,
_event_mgr: &mut EM
) -> Result<Self, Error> where
EM: EventFirer<I, S> + EventRestarter<S>,
OC: Corpus<I>,
OF: Feedback<I, S>,
S: HasSolutions<OC, I>,
Z: HasObjective<I, OF, S>,
pub fn new<EM, OC, OF, Z>(
harness_fn: &'a mut H,
observers: OT,
_fuzzer: &mut Z,
_state: &mut S,
_event_mgr: &mut EM
) -> Result<Self, Error> where
EM: EventFirer<I, S> + EventRestarter<S>,
OC: Corpus<I>,
OF: Feedback<I, S>,
S: HasSolutions<OC, I>,
Z: HasObjective<I, OF, S>,
Create a new in mem executor. Caution: crash and restart in one of them will lead to odd behavior if multiple are used, depending on different corpus or state.
harness_fn
- the harness, executiong the functionobservers
- the observers observing the target during execution This may return an error on unix, if signal handler setup fails
Retrieve the harness function for a mutable reference.
Trait Implementations
impl<'a, EM, H, I, OT, S, Z> Executor<EM, I, S, Z> for InProcessExecutor<'a, H, I, OT, S> where
H: FnMut(&I) -> ExitKind,
I: Input,
OT: ObserversTuple<I, S>,
impl<'a, EM, H, I, OT, S, Z> Executor<EM, I, S, Z> for InProcessExecutor<'a, H, I, OT, S> where
H: FnMut(&I) -> ExitKind,
I: Input,
OT: ObserversTuple<I, S>,
impl<'a, H, I, OT, S> HasObservers<I, OT, S> for InProcessExecutor<'a, H, I, OT, S> where
H: FnMut(&I) -> ExitKind,
I: Input,
OT: ObserversTuple<I, S>,
impl<'a, H, I, OT, S> HasObservers<I, OT, S> for InProcessExecutor<'a, H, I, OT, S> where
H: FnMut(&I) -> ExitKind,
I: Input,
OT: ObserversTuple<I, S>,
Auto Trait Implementations
impl<'a, H, I, OT, S> RefUnwindSafe for InProcessExecutor<'a, H, I, OT, S> where
H: RefUnwindSafe,
I: RefUnwindSafe,
OT: RefUnwindSafe,
S: RefUnwindSafe,
impl<'a, H, I, OT, S> Send for InProcessExecutor<'a, H, I, OT, S> where
H: Send,
I: Send,
OT: Send,
S: Send,
impl<'a, H, I, OT, S> Sync for InProcessExecutor<'a, H, I, OT, S> where
H: Sync,
I: Sync,
OT: Sync,
S: Sync,
impl<'a, H, I, OT, S> Unpin for InProcessExecutor<'a, H, I, OT, S> where
I: Unpin,
OT: Unpin,
S: Unpin,
impl<'a, H, I, OT, S> !UnwindSafe for InProcessExecutor<'a, H, I, OT, S>
Blanket Implementations
Mutably borrows from an owned value. Read more
type PreprendResult = Tail
type PreprendResult = Tail
The Resulting TupleList
, of an Prepend::prepend()
call,
including the prepended entry. Read more
type Output = T
type Output = T
Should always be Self