Struct gimli::write::Expression [−][src]
pub struct Expression { /* fields omitted */ }
Expand description
The bytecode for a DWARF expression or location description.
Implementations
pub fn from<R: Reader<Offset = usize>>(
from_expression: Expression<R>,
encoding: Encoding,
dwarf: Option<&Dwarf<R>>,
unit: Option<&Unit<R>>,
entry_ids: Option<&HashMap<UnitSectionOffset, (UnitId, UnitEntryId)>>,
convert_address: &dyn Fn(u64) -> Option<Address>
) -> ConvertResult<Expression>
pub fn from<R: Reader<Offset = usize>>(
from_expression: Expression<R>,
encoding: Encoding,
dwarf: Option<&Dwarf<R>>,
unit: Option<&Unit<R>>,
entry_ids: Option<&HashMap<UnitSectionOffset, (UnitId, UnitEntryId)>>,
convert_address: &dyn Fn(u64) -> Option<Address>
) -> ConvertResult<Expression>
Create an expression from the input expression.
Create an expression from raw bytecode.
This does not support operations that require references, such as DW_OP_addr
.
Add an operation to the expression.
This should only be used for operations that have no explicit operands.
Add a DW_OP_constu
operation to the expression.
This may be emitted as a smaller equivalent operation.
Add a DW_OP_consts
operation to the expression.
This may be emitted as a smaller equivalent operation.
Add a DW_OP_const_type
or DW_OP_GNU_const_type
operation to the expression.
Add a DW_OP_bregx
operation to the expression.
This may be emitted as a smaller equivalent operation.
Add a DW_OP_regval_type
or DW_OP_GNU_regval_type
operation to the expression.
This may be emitted as a smaller equivalent operation.
Add a DW_OP_pick
operation to the expression.
This may be emitted as a DW_OP_dup
or DW_OP_over
operation.
Add a DW_OP_deref_size
operation to the expression.
Add a DW_OP_xderef_size
operation to the expression.
Add a DW_OP_deref_type
or DW_OP_GNU_deref_type
operation to the expression.
Add a DW_OP_xderef_type
operation to the expression.
Add a DW_OP_plus_uconst
operation to the expression.
Add a DW_OP_skip
operation to the expression.
Returns the index of the operation. The caller must call set_target
with
this index to set the target of the branch.
Add a DW_OP_bra
operation to the expression.
Returns the index of the operation. The caller must call set_target
with
this index to set the target of the branch.
Return the index that will be assigned to the next operation.
This can be passed to set_target
.
Set the target of a DW_OP_skip
or DW_OP_bra
operation .
Add a DW_OP_call4
operation to the expression.
Add a DW_OP_call_ref
operation to the expression.
Add a DW_OP_convert
or DW_OP_GNU_convert
operation to the expression.
base
is the DIE of the base type, or None
for the generic type.
Add a DW_OP_reinterpret
or DW_OP_GNU_reinterpret
operation to the expression.
base
is the DIE of the base type, or None
for the generic type.
Add a DW_OP_entry_value
or DW_OP_GNU_entry_value
operation to the expression.
Add a DW_OP_regx
operation to the expression.
This may be emitted as a smaller equivalent operation.
Add a DW_OP_implicit_value
operation to the expression.
Add a DW_OP_implicit_pointer
or DW_OP_GNU_implicit_pointer
operation to the expression.
Add a DW_OP_bit_piece
operation to the expression.
Add a DW_OP_GNU_parameter_ref
operation to the expression.
Add a DW_OP_WASM_location 0x0
operation to the expression.
Add a DW_OP_WASM_location 0x1
operation to the expression.
Add a DW_OP_WASM_location 0x2
operation to the expression.
Trait Implementations
Returns the “default value” for a type. Read more
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for Expression
impl Send for Expression
impl Sync for Expression
impl Unpin for Expression
impl UnwindSafe for Expression
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.