For an introduction to the crate and how to get started, see the crate's README.
Utility functions for performing memory allocation. These may be useful in implementing hooks for various functions that perform memory allocation.
Traits which abstract over the backend (BV types, memory implementation, etc) being used.
Functions and structures for defining and activating instruction callbacks
Implementation of a
Functions and structures for defining and activating function hooks
Utility functions for performing memset or memcpy operations. These may be useful in implementing hooks for other functions.
Simple implementation of a
Simple utilities for interacting with the solver
Structures for defining and processing memory watchpoints
Fully describes a code location within the LLVM IR.
Describes a location in LLVM IR in a format more suitable for printing - for
instance, uses function names rather than references to
Describes one segment of a path through the LLVM IR. The "segment" will be one or more consecutive instructions in a single basic block.
Denotes either a particular instruction in a basic block, or its terminator.
Error types used throughout this crate.
A simple enum describing the value returned from a function
A simple enum describing either an integer value or a pointer
Given a function, find values of its inputs such that it returns zero. Assumes that the function takes (some number of) integer and/or pointer arguments, and returns an integer. Pointer arguments will be assumed to be never NULL.
Get a description of the possible return values of a function, for given argument values. Considers all possible paths through the function given these arguments.
Begin symbolic execution of the function named
A type alias for convenience, similar to how