NAME
dwarf_add_expr_gen —
add an operator to
a location expression descriptor
LIBRARY
DWARF Access Library (libdwarf, -ldwarf)
SYNOPSIS
#include <libdwarf.h>
Dwarf_Unsigned
dwarf_add_expr_gen(
Dwarf_P_Expr expr,
Dwarf_Small opcode,
Dwarf_Unsigned
val1,
Dwarf_Unsigned val2,
Dwarf_Error *err);
DESCRIPTION
Function
dwarf_add_expr_gen() adds a location expression
operator to the location expression descriptor referenced by argument
expr.
Argument
expr should reference a location expression
descriptor allocated using the function
dwarf_new_expr(3).
Argument
opcode specifies the operation code of the
location expression operator. Valid values for this argument are those denoted
by the
DW_OP_
* constants defined in
<libdwarf.h>.
To generate a
DW_OP_addr
operation, application code
should instead use
dwarf_add_expr_addr_b(3).
Argument
val1 specifies the first operand of the location
expression operator.
Argument
val2 specifies the second operand of the location
expression operator.
If argument
err is not NULL, it will be used to store
error information in case of an error.
RETURN VALUES
On success, function
dwarf_add_expr_gen() returns the size in
bytes of the location expression byte stream generated. In case of an error,
function
dwarf_add_expr_gen() returns
DW_DLV_NOCOUNT
and sets the argument
err.
ERRORS
Function
dwarf_add_expr_gen() can fail with:
-
-
- [
DW_DLE_ARGUMENT
]
- Argument expr was NULL.
-
-
- [
DW_DLE_LOC_EXPR_BAD
]
- The operation code specified in argument
opcode was invalid.
-
-
- [
DW_DLE_MEMORY
]
- An out of memory condition was encountered during the
execution of the function.
SEE ALSO
dwarf(3),
dwarf_add_AT_location_expr(3),
dwarf_add_expr_addr(3),
dwarf_add_expr_addr_b(3),
dwarf_expr_current_offset(3),
dwarf_expr_into_block(3),
dwarf_new_expr(3)