[][src]Enum haybale::Error

pub enum Error {
    Unsat,
    LoopBoundExceeded(usize),
    NullPointerDereference,
    FunctionNotFound(String),
    SolverError(String),
    UnsupportedInstruction(String),
    MalformedInstruction(String),
    UnreachableInstruction,
    FailedToResolveFunctionPointer(u64),
    HookReturnValueMismatch(String),
    OtherError(String),
}

Error types used throughout this crate.

The Display impl for Error will provide information about the error itself. For more detailed information about the error, including the program context in which it occurred, see State.full_error_message_with_context().

Variants

Unsat

While performing an operation, we discovered the current path is unsat.

This error type is used internally, but (by default) isn't exposed to consumers of ExecutionManager; see Config.squash_unsats.

LoopBoundExceeded(usize)

The current path has exceeded the configured loop_bound (see Config). (The usize here indicates the value of the configured loop_bound.)

NullPointerDereference

The current path has attempted to dereference a null pointer (or more precisely, a pointer for which NULL is a possible value)

FunctionNotFound(String)

Processing a call of a function with the given name, but failed to find an LLVM definition, a function hook, or a built-in handler for it

SolverError(String)

The solver returned this processing error while evaluating a query. Often, this is a timeout; see Config.solver_query_timeout

UnsupportedInstruction(String)

Encountered an LLVM instruction which is not currently supported

MalformedInstruction(String)

Encountered an LLVM instruction which was malformed, or at least didn't conform to our expected invariants

UnreachableInstruction

Reached an LLVM Unreachable instruction

FailedToResolveFunctionPointer(u64)

Failed to interpret some symbolic value (BV) as a function pointer, because it has a possible solution (the u64 here) which points to something that's not a function

HookReturnValueMismatch(String)

The hook for some function returned a value which didn't match the function return type: for instance, a value of the wrong size. The String here just describes the error

OtherError(String)

Some kind of error which doesn't fall into one of the above categories. The String here describes the error

Trait Implementations

impl Clone for Error[src]

impl Debug for Error[src]

impl Display for Error[src]

impl Eq for Error[src]

impl From<Error> for String[src]

impl PartialEq<Error> for Error[src]

impl StructuralEq for Error[src]

impl StructuralPartialEq for Error[src]

Auto Trait Implementations

impl RefUnwindSafe for Error

impl Send for Error

impl Sync for Error

impl Unpin for Error

impl UnwindSafe for Error

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.