pub struct FunctionSearchOptions<'a> {
    pub start_address: Option<u32>,
    pub last_function_address: Option<u32>,
    pub end_address: Option<u32>,
    pub max_function_start_search_distance: u32,
    pub use_data_as_upper_bound: bool,
    pub function_addresses: Option<BTreeSet<u32>>,
    pub existing_functions: Option<&'a BTreeMap<u32, Function>>,
    pub check_defs_uses: bool,
}Fields§
§start_address: Option<u32>Address to start searching from. Defaults to the base address.
last_function_address: Option<u32>Last address that a function can start from. Defaults to Self::end_address.
end_address: Option<u32>Address to end the search. Defaults to the base address plus code size.
max_function_start_search_distance: u32If zero, end the search when an illegal starting instruction is found. Otherwise, continue searching for a valid
function start for up to this many bytes. Set to u32::MAX to search until the end of the module.
use_data_as_upper_bound: boolIf true, pointers to data will be used to limit the upper bound address.
function_addresses: Option<BTreeSet<u32>>Guarantees that all these addresses will be analyzed, even if the function analysis would terminate before they are
reached. Used for .init functions.
Note: This will override keep_searching_for_valid_function_start, they are not intended to be used together.
existing_functions: Option<&'a BTreeMap<u32, Function>>If a branch instruction branches into one of these functions, it will be treated as a function branch instead of inserting a label at the branch destination. If the function branch is unconditional, it will also be treated as a tail call and terminate the analysis of the current function.
check_defs_uses: boolWhether to treat instructions using undefined registers as illegal.