Struct gimli::Evaluation
[−]
[src]
pub struct Evaluation<'context, 'input, Endian> where Endian: 'context + Endianity, 'input: 'context { /* fields omitted */ }A DWARF expression evaluation.
Methods
impl<'context, 'input, Endian> Evaluation<'context, 'input, Endian> where Endian: 'context + Endianity, 'input: 'context[src]
fn new(bytecode: &'input [u8],
address_size: u8,
format: Format,
callbacks: &'context mut EvaluationContext<'input>)
-> Evaluation<'context, 'input, Endian>
address_size: u8,
format: Format,
callbacks: &'context mut EvaluationContext<'input>)
-> Evaluation<'context, 'input, Endian>
Create a new DWARF expression evaluator.
fn set_initial_value(&mut self, value: u64)
Set an initial value to be pushed on the DWARF expression
evaluator's stack. This can be used in cases like
DW_AT_vtable_elem_location, which require a value on the
stack before evaluation commences.
fn set_object_address(&mut self, value: u64)
Set the enclosing object's address, as used by
DW_OP_push_object_address
fn set_max_iterations(&mut self, value: u32)
Set the maximum number of iterations to be allowed by the
expression evaluator. The default is None. This value can
be set to avoid denial of service attacks by bad DWARF
bytecode.
fn evaluate(&mut self) -> Result<Vec<Piece<'input>>> where Endian: Endianity
Evaluate a DWARF expression.