NAME
dwarf_add_AT_location_expr —
create an
attribute descriptor for a location expression
LIBRARY
DWARF Access Library (libdwarf, -ldwarf)
SYNOPSIS
#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);
DESCRIPTION
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.
RETURN VALUES
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.
ERRORS
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.
SEE ALSO
dwarf(3),
dwarf_new_die(3),
dwarf_new_expr(3),
dwarf_producer_init(3),
dwarf_producer_init_b(3)