FreeBSD manual
download PDF document: dwarf_formref.3.pdf
DWARF_FORMREF(3) FreeBSD Library Functions Manual DWARF_FORMREF(3)
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)
FreeBSD 14.0-RELEASE-p11 June 21, 2010 FreeBSD 14.0-RELEASE-p11