Enum gimli::EvaluationResult
[−]
[src]
pub enum EvaluationResult<R: Reader> { Complete, RequiresMemory { address: u64, size: u8, space: Option<u64>, }, RequiresRegister(u64), RequiresFrameBase, RequiresTls(u64), RequiresCallFrameCfa, RequiresAtLocation(DieReference<R::Offset>), RequiresEntryValue(R), RequiresParameterRef(UnitOffset<R::Offset>), RequiresTextBase, }
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
CompleteThe Evaluation is complete, and Evaluation::result() can be called.
RequiresMemoryThe 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
address: u64 | The address of the value required. |
size: u8 | The size of the value required. This is guaranteed to be at most the word size of the target architecture. |
space: Option<u64> | If not |
RequiresRegister(u64)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.
RequiresFrameBaseThe 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.
RequiresTls(u64)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.
RequiresCallFrameCfaThe 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.
RequiresAtLocation(DieReference<R::Offset>)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.
RequiresEntryValue(R)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.
RequiresParameterRef(UnitOffset<R::Offset>)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.
RequiresTextBaseThe 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.
Trait Implementations
impl<R: Debug + Reader> Debug for EvaluationResult<R> where
R::Offset: Debug,
R::Offset: Debug, [src]
R::Offset: Debug,
R::Offset: Debug,
impl<R: PartialEq + Reader> PartialEq for EvaluationResult<R> where
R::Offset: PartialEq,
R::Offset: PartialEq, [src]
R::Offset: PartialEq,
R::Offset: PartialEq,
fn eq(&self, __arg_0: &EvaluationResult<R>) -> bool
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, __arg_0: &EvaluationResult<R>) -> bool
This method tests for !=.