dwarf_add_AT_location_expr
—
create an attribute descriptor for a location
expression
DWARF Access Library (libdwarf,
-ldwarf)
#include
<libdwarf.h>
Dwarf_P_Attribute
dwarf_add_AT_location_expr
(Dwarf_P_Debug
dbg, Dwarf_P_Die die, Dwarf_Half
attr, Dwarf_P_Expr loc_expr,
Dwarf_Error *err);
Function
dwarf_add_AT_location_expr
()
creates an attribute descriptor for a location expression and attaches it to
the debugging information entry referenced by argument
die.
Argument dbg should reference a DWARF
producer instance allocated using
dwarf_producer_init(3)
or
dwarf_producer_init_b(3).
Argument die should reference a debugging
information entry allocated using
dwarf_new_die(3).
Argument attr specifies the attribute code
of the created attribute descriptor.
Argument loc_expr should reference a
location expression descriptor allocated using
dwarf_new_expr(3).
The attribute created by
function
dwarf_add_AT_location_expr
()
will have one of the DWARF forms DW_FORM_block
,
DW_FORM_block1
,
DW_FORM_block2
or
DW_FORM_block4
, depending on the size of the byte
stream generated by the location expression descriptor referenced by
argument loc_expr.
If argument err is not NULL, it will be used
by to store error information in case of an error.
On success, function
dwarf_add_AT_location_expr
() returns the created
attribute descriptor. In case of an error, function
dwarf_add_AT_location_expr
() returns
DW_DLV_BADADDR
and sets the argument
err.
Function dwarf_add_AT_location_expr
() can
fail with:
- [
DW_DLE_ARGUMENT
]
- One of the arguments dbg, die
or loc_expr was NULL.
- [
DW_DLE_MEMORY
]
- An out of memory condition was encountered during the execution of the
function.