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
Complete
The Evaluation
is complete, and Evaluation::result()
can be called.
RequiresMemory
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
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
.
RequiresFrameBase
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.
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
.
RequiresCallFrameCfa
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
.
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 !=
.