dwarf_hasform
, dwarf_whatform
,
dwarf_whatform_direct
—
query attribute forms
DWARF Access Library (libdwarf, -ldwarf)
#include <libdwarf.h>
int
dwarf_hasform
(Dwarf_Attribute
attr, Dwarf_Half form,
Dwarf_Bool *ret, Dwarf_Error
*err);
int
dwarf_whatform
(Dwarf_Attribute
attr, Dwarf_Half *retform,
Dwarf_Error *err);
int
dwarf_whatform_direct
(Dwarf_Attribute
attr, Dwarf_Half *retform,
Dwarf_Error *err);
Function dwarf_hasform
() indicates whether the DWARF
attribute denoted by argument attr has the attribute
form specified by argument form. If the attribute has
the specified form, then argument ret is set to a
non-zero value, otherwise it is set to zero. If argument
err is non-NULL, it will be used to return an error
descriptor in case of an error.
Function dwarf_whatform
() sets the
location specified by argument retform to the
attribute form code for the DWARF attribute referenced by argument
attr. If the attribute referenced by argument
attr has an indirect form attribute, this function
will return the final form for the attribute. If argument
err is non-NULL, it will be used to return an error
descriptor in case of an error.
Function dwarf_whatform_direct
() sets the
location specified by argument retform to the
attribute form code for the DWARF attribute referenced by argument
attr. If the form is an indirect form, the function
sets the location specified by argument retform to
DW_FORM_indirect
. If argument
err is non-NULL, it will be used to return an error
descriptor in case of an error.
These functions return DW_DLV_OK
on success. In case of
an error, these functions return DW_DLV_ERR
and set
argument err.
These functions may fail with the following errors:
- [
DW_DLE_ARGUMENT
]
- Any of the arguments attr,
ret, or retform was NULL.