Struct libafl::events::simple::SimpleRestartingEventManager [−][src]
pub struct SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats, { /* fields omitted */ }
Expand description
Provides a builder
which can be used to build a [RestartingMgr
], which is a combination of a
restarter
and runner
, that can be used on systems both with and without fork
support. The
restarter
will start a new process each time the child crashes or times out.
Implementations
impl<I, S, SP, ST> SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: DeserializeOwned + Serialize,
SP: ShMemProvider,
ST: Stats,
impl<I, S, SP, ST> SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: DeserializeOwned + Serialize,
SP: ShMemProvider,
ST: Stats,
Launch the simple restarting manager.
This EventManager
is simple and single threaded,
but can still used shared maps to recover from crashes and timeouts.
Trait Implementations
impl<I, S, SP, ST> EventFirer<I, S> for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
impl<I, S, SP, ST> EventFirer<I, S> for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
Send off an event to the broker
fn serialize_observers<OT>(&mut self, observers: &OT) -> Result<Vec<u8>, Error> where
OT: ObserversTuple<I, S> + Serialize,
fn serialize_observers<OT>(&mut self, observers: &OT) -> Result<Vec<u8>, Error> where
OT: ObserversTuple<I, S> + Serialize,
Serialize all observers for this type and manager
Get the configuration
impl<E, I, S, SP, ST, Z> EventProcessor<E, I, S, Z> for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
impl<E, I, S, SP, ST, Z> EventProcessor<E, I, S, Z> for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
Lookup for incoming events and process them. Return the number of processes events or an error Read more
fn deserialize_observers<OT>(
&mut self,
observers_buf: &[u8]
) -> Result<OT, Error> where
OT: ObserversTuple<I, S> + DeserializeOwned,
fn deserialize_observers<OT>(
&mut self,
observers_buf: &[u8]
) -> Result<OT, Error> where
OT: ObserversTuple<I, S> + DeserializeOwned,
Deserialize all observers for this type and manager
impl<I, S, SP, ST> EventRestarter<S> for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
impl<I, S, SP, ST> EventRestarter<S> for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
Reset the single page (we reuse it over and over from pos 0), then send the current state to the next runner.
Block until we are safe to exit.
impl<I, S, SP, ST> HasEventManagerId for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
impl<I, S, SP, ST> HasEventManagerId for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
The id of this manager. For Multiprocessed EventManager
s,
each client sholud have a unique ids. Read more
impl<E, I, S, SP, ST, Z> EventManager<E, I, S, Z> for SimpleRestartingEventManager<I, S, SP, ST> where
I: Input,
S: Serialize,
SP: ShMemProvider,
ST: Stats,
Auto Trait Implementations
impl<I, S, SP, ST> RefUnwindSafe for SimpleRestartingEventManager<I, S, SP, ST> where
I: RefUnwindSafe,
S: RefUnwindSafe,
SP: RefUnwindSafe,
ST: RefUnwindSafe,
<SP as ShMemProvider>::Mem: RefUnwindSafe,
impl<I, S, SP, ST> !Send for SimpleRestartingEventManager<I, S, SP, ST>
impl<I, S, SP, ST> !Sync for SimpleRestartingEventManager<I, S, SP, ST>
impl<I, S, SP, ST> Unpin for SimpleRestartingEventManager<I, S, SP, ST> where
I: Unpin,
S: Unpin,
SP: Unpin,
ST: Unpin,
<SP as ShMemProvider>::Mem: Unpin,
impl<I, S, SP, ST> UnwindSafe for SimpleRestartingEventManager<I, S, SP, ST> where
I: UnwindSafe,
S: UnwindSafe,
SP: UnwindSafe,
ST: UnwindSafe,
<SP as ShMemProvider>::Mem: UnwindSafe,
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