dwarf_formref,
dwarf_global_formref —
retrieve offsets for REFERENCE class
attributes
DWARF Access Library (libdwarf, -ldwarf)
#include
<libdwarf.h>
int
dwarf_formref(
Dwarf_Attribute
attr,
Dwarf_Off *retoffset,
Dwarf_Error *err);
int
dwarf_global_formref(
Dwarf_Attribute
attr,
Dwarf_Off *retoffset,
Dwarf_Error *err);
These functions return the offsets associated with a DWARF attribute descriptor.
Function
dwarf_formref() returns the compilation
unit relative offset of the descriptor referenced by argument
attr in the location pointed to by argument
retoffset. Argument
attr must be a reference that is local to a
compilation unit. Permitted forms for argument
attr are
DW_FORM_ref1
,
DW_FORM_ref2
,
DW_FORM_ref4
,
DW_FORM_ref8
and
DW_FORM_ref_udata
.
Function
dwarf_global_formref() returns the
section-relative offset of the descriptor referenced by argument
attr in the location pointed to by argument
retoffset. Argument
attr should be a legal
REFERENCE class form. Permitted forms for
argument
attr are:
DW_FORM_ref_addr
,
DW_FORM_ref_udata
,
DW_FORM_ref1
,
DW_FORM_ref2
,
DW_FORM_ref4
,
DW_FORM_ref8
and
DW_FORM_sec_offset
. The returned offset is
relative to the start of the “.debug_info” ELF section.
If argument
err is not 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_ERROR
and sets argument
err.
These functions may fail with the following errors:
-
-
- [
DW_DLE_ARGUMENT
]
- Either of arguments attr
or retoffset was NULL.
-
-
- [
DW_DLE_ATTR_FORM_BAD
]
- The attribute referenced by argument
attr was not of a permitted kind.
dwarf(3),
dwarf_attr(3),
dwarf_formblock(3),
dwarf_formflag(3),
dwarf_formsdata(3),
dwarf_formsig8(3),
dwarf_formstring(3),
dwarf_formudata(3),
dwarf_hasattr(3)