Enum gimli::EvaluationResult
[−]
[src]
pub enum EvaluationResult<'input, Endian> where
Endian: Endianity, { Complete, RequiresMemory { address: u64, size: u8, space: Option<u64>, }, RequiresRegister(u64), RequiresFrameBase, RequiresTls(u64), RequiresCallFrameCfa, RequiresAtLocation(DieReference), RequiresEntryValue(EndianBuf<'input, Endian>), }
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)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(EndianBuf<'input, Endian>)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.
Trait Implementations
impl<'input, Endian: Debug> Debug for EvaluationResult<'input, Endian> where
Endian: Endianity, [src]
Endian: Endianity,
impl<'input, Endian: PartialEq> PartialEq for EvaluationResult<'input, Endian> where
Endian: Endianity, [src]
Endian: Endianity,
fn eq(&self, __arg_0: &EvaluationResult<'input, Endian>) -> bool
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, __arg_0: &EvaluationResult<'input, Endian>) -> bool
This method tests for !=.