[−][src]Enum gimli::read::EvaluationResult
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
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 None
, a target-specific address space value.
base_type: UnitOffset<R::Offset>
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
register: Register
The register number.
base_type: UnitOffset<R::Offset>
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
.
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(Expression<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
.
The Evaluation
needs an address to be relocated to proceed further.
Once the caller determines what value to provide it should resume the
Evaluation
by calling Evaluation::resume_with_relocated_address
.
The Evaluation
needs an address from the .debug_addr
section.
This address may also need to be relocated.
Once the caller determines what value to provide it should resume the
Evaluation
by calling Evaluation::resume_with_indexed_address
.
Fields of RequiresIndexedAddress
index: DebugAddrIndex<R::Offset>
The index of the address in the .debug_addr
section,
relative to the DW_AT_addr_base
of the compilation unit.
relocate: bool
Whether the address also needs to be relocated.
RequiresBaseType(UnitOffset<R::Offset>)
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,
R::Offset: Debug,
R::Offset: Debug,
R::Offset: Debug,
R::Offset: Debug,
R::Offset: Debug,
[src]
R::Offset: Debug,
R::Offset: Debug,
R::Offset: Debug,
R::Offset: Debug,
R::Offset: Debug,
R::Offset: Debug,
impl<R: PartialEq + Reader> PartialEq<EvaluationResult<R>> for EvaluationResult<R> where
R::Offset: PartialEq,
R::Offset: PartialEq,
R::Offset: PartialEq,
R::Offset: PartialEq,
R::Offset: PartialEq,
R::Offset: PartialEq,
[src]
R::Offset: PartialEq,
R::Offset: PartialEq,
R::Offset: PartialEq,
R::Offset: PartialEq,
R::Offset: PartialEq,
R::Offset: PartialEq,
fn eq(&self, other: &EvaluationResult<R>) -> bool
[src]
fn ne(&self, other: &EvaluationResult<R>) -> bool
[src]
impl<R: Reader> StructuralPartialEq for EvaluationResult<R>
[src]
Auto Trait Implementations
impl<R> Send for EvaluationResult<R> where
R: Send,
<R as Reader>::Offset: Send,
R: Send,
<R as Reader>::Offset: Send,
impl<R> Sync for EvaluationResult<R> where
R: Sync,
<R as Reader>::Offset: Sync,
R: Sync,
<R as Reader>::Offset: Sync,
impl<R> Unpin for EvaluationResult<R> where
R: Unpin,
<R as Reader>::Offset: Unpin,
R: Unpin,
<R as Reader>::Offset: Unpin,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,