DWARF_ADD_AT_REFERENCE(3) | Library Functions Manual | DWARF_ADD_AT_REFERENCE(3)

# NAME

`dwarf_add_AT_reference` — create and attach an attribute that references another DIE

# LIBRARY

DWARF Access Library (libdwarf, -ldwarf)

# SYNOPSIS

`#include <libdwarf.h>`

Dwarf_P_Attribute
`dwarf_add_AT_reference`(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, Dwarf_P_Die ref_die, Dwarf_Error *err);

# DESCRIPTION

Function `dwarf_add_AT_reference`() creates an attribute descriptor that references another debugging information entry in the same compilation unit. The attribute will be of DWARF form `DW_FORM_ref4` or `DW_FORM_ref8` depending on the target address size, and will contain the section-relative offset of the referenced debugging information entry as its value.

Argument dbg should reference a DWARF producer instance allocated using dwarf_producer_init(3) or dwarf_producer_init_b(3).

Argument die should reference a debugging information entry allocated using dwarf_new_die(3).

Argument attr should specify the attribute code of the created attribute descriptor.

Argument ref_die should hold the debugging information entry descriptor that the attribute should refer to.

If argument err is not `NULL`, it will be used to store error information in case of an error.

# RETURN VALUES

On success, function `dwarf_add_AT_reference`() returns the created attribute descriptor. In case of an error, function `dwarf_add_AT_reference`() returns `DW_DLV_BADADDR` and sets the argument err.

# ERRORS

Function `dwarf_add_AT_reference`() can fail with:

[`DW_DLE_ARGUMENT`]
  One of the arguments dbg, die or ref_die was `NULL`.
[`DW_DLE_MEMORY`]
  An out of memory condition was encountered during the execution of the function.

# SEE ALSO

dwarf(3), dwarf_add_AT_dataref(3), dwarf_add_AT_ref_address(3), dwarf_add_AT_signed_const(3), dwarf_add_AT_unsigned_const(3), dwarf_new_die(3), dwarf_producer_init(3), dwarf_producer_init_b(3)

September 4, 2011 | NetBSD 11.0