dwarf_formref(3)

dwarf_formref3

Retrieve offsets for reference class attributes

Usage

#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);

Library

library “libdwarf”

Overview

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.

Releases

25 releases since FreeBSD 11.0-RELEASE; the text changed 1 time.

  1. 11.0–12.0
  2. 12.1–16.0

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.