Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


DWARF_ADD_AT_LOCATION_EXPR(3)                         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)

NetBSD 10.99                   September 5, 2011                  NetBSD 10.99