NAME
dwarf_formref,
dwarf_global_formref —
retrieve offsets for REFERENCE class attributes
LIBRARY
DWARF Access Library (libdwarf, -ldwarf)
SYNOPSIS
#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);
DESCRIPTION
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.
RETURN VALUES
These functions return
DW_DLV_OK
on success. In case of
an error, these functions return
DW_DLV_ERROR
and sets
argument
err.
ERRORS
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.
SEE ALSO
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)