dwarf_add_AT_location_expr(3)

dwarf_add_AT_location_expr3

Create an attribute descriptor for a location expression

Usage

#include <libdwarf.h>

Dwarf_P_Attribute

dwarf_add_AT_location_expr(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, Dwarf_P_Expr loc_expr, Dwarf_Error *err);

Library

library “libdwarf”

Overview

Function dwarf_add_AT_location_expr() creates an attribute descriptor for a location expression and attaches it to the debugging information entry referenced by argument die.

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 specifies the attribute code of the created attribute descriptor.

Argument loc_expr should reference a location expression descriptor allocated using dwarf_new_expr(3).

The attribute created by function dwarf_add_AT_location_expr() will have one of the DWARF forms DW_FORM_block, DW_FORM_block1, DW_FORM_block2 or DW_FORM_block4, depending on the size of the byte stream generated by the location expression descriptor referenced by argument loc_expr.

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

Return values

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

Errors

Function dwarf_add_AT_location_expr() can fail with:

[DW_DLE_ARGUMENT]

One of the arguments dbg, die or loc_expr was NULL.

[DW_DLE_MEMORY]

An out of memory condition was encountered during the execution of the function.

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.