Updated: 2022/Sep/29

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


DWARF_ATTRVAL_SIGNED(3)    Library Functions Manual    DWARF_ATTRVAL_SIGNED(3)

NAME
     dwarf_attrval_flag, dwarf_attrval_signed, dwarf_attrval_string,
     dwarf_attrval_unsigned - retrieve the value of an attribute within a
     DWARF debugging information entry

LIBRARY
     DWARF Access Library (libdwarf, -ldwarf)

SYNOPSIS
     #include <libdwarf.h>

     int
     dwarf_attrval_flag(Dwarf_Die die, Dwarf_Half attr, Dwarf_Bool *ret,
         Dwarf_Error *err);

     int
     dwarf_attrval_signed(Dwarf_Die die, Dwarf_Half attr, Dwarf_Signed *ret,
         Dwarf_Error *err);

     int
     dwarf_attrval_string(Dwarf_Die die, Dwarf_Half attr, const char **ret,
         Dwarf_Error *err);

     int
     dwarf_attrval_unsigned(Dwarf_Die die, Dwarf_Half attr,
         Dwarf_Unsigned *ret, Dwarf_Error *err);

DESCRIPTION
     These functions search the debugging information entry referenced by
     argument die for the attribute named by argument attr.  If the named
     attribute is found, the functions set the location pointed to by argument
     ret to the value of the attribute.  The argument err, if non-NULL, will
     be used to return an error descriptor in case of an error.

     Function dwarf_attrval_flag() sets the location pointed to by argument
     ret to either 0 or 1. If the form of the attribute named by argument attr
     is DW_FORM_flag, function dwarf_attrval_flag() sets the location pointed
     to by argument ret to 1 if the attribute has a non-zero value, or to 0
     otherwise.  If the form of the attribute named by argument attr is
     DW_FORM_flag_present, function dwarf_attrval_flag() unconditionally sets
     the location pointed to by argument ret to 1.  The form of the attribute
     must be one of DW_FORM_flag or DW_FORM_flag_present.

     Function dwarf_attrval_signed() stores the value for the attribute named
     by argument attr, into the location pointed to by argument ret.  The
     attribute's value is treated as a signed integral quantity and is sign-
     extended as needed.  The attribute named by the argument attr must belong
     to the CONSTANT class and must have one of the following forms:
     DW_FORM_data1, DW_FORM_data2, DW_FORM_data4, DW_FORM_data8 or
     DW_FORM_sdata.

     Function dwarf_attrval_string() sets the location pointed to by argument
     ret to a pointer to a NUL-terminated string that is the value of the
     attribute named by argument attr.  The form of the attribute must be one
     of DW_FORM_string or DW_FORM_strp.

     Function dwarf_attrval_unsigned() stores the value for the attribute
     named by argument attr into the location pointed to by argument ret.  The
     attribute's value is treated as an unsigned integral quantity, and is
     zero-extended as needed.  The named attribute must belong to one of the
     CONSTANT, ADDRESS or REFERENCE classes and must have one of the following
     forms: DW_FORM_addr, DW_FORM_data1, DW_FORM_data2, DW_FORM_data4,
     DW_FORM_data8, DW_FORM_udata, DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4,
     DW_FORM_ref8, or DW_FORM_ref_udata.

     If the attribute named by argument attr is DW_AT_type and is not present
     in the debugging information entry referenced by argument die, and if a
     DW_AT_abstract_origin or DW_AT_specification attribute is present in the
     debugging information entry, function dwarf_attrval_unsigned() will
     search for the named attribute in the debugging information entry
     referenced by the DW_AT_abstract_origin or DW_AT_specification attribute.

RETURN VALUES
     On success, these functions returns DW_DLV_OK.  If the named attribute
     was not found in the specified debugging information entry descriptor
     these functions return DW_DLV_NO_ENTRY and set argument err.  For other
     errors, these functions return DW_DLV_ERROR and set argument err.

COMPATIBILITY
     These functions are extensions added by this implementation of the
     DWARF(3) API.

ERRORS
     These functions may fail with the following errors:

     [DW_DLE_ARGUMENT]            Either of the arguments die or ret was NULL.

     [DW_DLE_NO_ENTRY]            Argument die did not contain an attribute
                                  corresponding to the value in argument attr.

     [DW_DLE_ATTR_FORM_BAD]       The attribute named by argument attr was not
                                  of a permitted form.

SEE ALSO
     dwarf(3), dwarf_attr(3), dwarf_hasattr(3)

NetBSD 10.99                   December 26, 2016                  NetBSD 10.99