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 not present in
the debugging information entry referenced by argument
die, and if a
DW_AT_abstract_origin
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
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)