Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


DWARF_FORMREF(3)           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)

NetBSD 10.99                     June 21, 2010                    NetBSD 10.99