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.
dwarf(3),
dwarf_attr(3),
dwarf_hasattr(3)