Enum gimli::EvaluationResult[][src]

pub enum EvaluationResult<R: Reader> {
    Complete,
    RequiresMemory {
        address: u64,
        size: u8,
        space: Option<u64>,
        base_type: UnitOffset<R::Offset>,
    },
    RequiresRegister {
        register: u64,
        base_type: UnitOffset<R::Offset>,
    },
    RequiresFrameBase,
    RequiresTls(u64),
    RequiresCallFrameCfa,
    RequiresAtLocation(DieReference<R::Offset>),
    RequiresEntryValue(Expression<R>),
    RequiresParameterRef(UnitOffset<R::Offset>),
    RequiresTextBase,
    RequiresBaseType(UnitOffset<R::Offset>),
}

The state of an Evaluation after evaluating a DWARF expression. The evaluation is either Complete, or it requires more data to continue, as described by the variant.

Variants

The Evaluation is complete, and Evaluation::result() can be called.

The Evaluation needs a value from memory to proceed further. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_memory.

Fields of RequiresMemory

The address of the value required.

The size of the value required. This is guaranteed to be at most the word size of the target architecture.

If not None, a target-specific address space value.

The DIE of the base type or 0 to indicate the generic type

The Evaluation needs a value from a register to proceed further. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_register.

Fields of RequiresRegister

The register number.

The DIE of the base type or 0 to indicate the generic type

The Evaluation needs the frame base address to proceed further. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_frame_base. The frame base address is the address produced by the location description in the DW_AT_frame_base attribute of the current function.

The Evaluation needs a value from TLS to proceed further. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_tls.

The Evaluation needs the CFA to proceed further. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_call_frame_cfa.

The Evaluation needs the DWARF expression at the given location to proceed further. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_at_location.

The Evaluation needs the value produced by evaluating a DWARF expression at the entry point of the current subprogram. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_entry_value.

The Evaluation needs the value of the parameter at the given location in the current function's caller. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_parameter_ref.

The Evaluation needs the base address of the .text section of the binary to proceed. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_text_base.

The Evaluation needs the ValueType for the base type DIE at the give unit offset. Once the caller determines what value to provide it should resume the Evaluation by calling Evaluation::resume_with_base_type.

Trait Implementations

impl<R: Debug + Reader> Debug for EvaluationResult<R> where
    R::Offset: Debug
[src]

Formats the value using the given formatter. Read more

impl<R: PartialEq + Reader> PartialEq for EvaluationResult<R> where
    R::Offset: PartialEq
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

impl<R> Send for EvaluationResult<R> where
    R: Send,
    <R as Reader>::Offset: Send

impl<R> Sync for EvaluationResult<R> where
    R: Sync,
    <R as Reader>::Offset: Sync