FreeBSD manual
download PDF document: dwarf_add_AT_location_expr.3.pdf
DWARF_ADD_AT_LOCATION_EXPR(3) FreeBSD Library Functions Manual
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)