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.