---
name: "dwarf_attr"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/dwarf_attr"
---

# dwarf\_attr(3)

retrieve an attribute descriptor associated with a DWARF debugging information entry

## NAME

**dwarf\_attr** – retrieve an attribute descriptor associated with a DWARF debugging information entry

## LIBRARY

library “libdwarf”

## SYNOPSIS

**#include \<libdwarf.h\>**

*int*\

**dwarf\_attr**(*Dwarf\_Die die*, *Dwarf\_Half attr*, *Dwarf\_Attribute \*atp*, *Dwarf\_Error \*err*);

## DESCRIPTION

Function **dwarf\_attr**() retrieves the attribute descriptor for an attribute associated with the DWARF debugging information entry descriptor in argument *die*.

DWARF attribute descriptors are represented by value of the opaque type *Dwarf\_Attribute*, see [dwarf(3)](/dwarf/3.md).

Argument *attr* names the desired DWARF attribute. Legal values for argument *attr* are those denoted by the DW\_AT\_\* constants in the DWARF specification.

Argument *atp* points to a location into which the returned attribute descriptor will be written. The returned descriptor may then be passed to the form query functions in the [dwarf(3)](/dwarf/3.md) API set to access the data associated with the attribute.

If argument *err* is non-NULL, it will be used to return an error descriptor in case of an error.

## RETURN VALUES

Function **dwarf\_attr**() returns DW\_DLV\_OK on success.

If the debugging information entry descriptor denoted by argument *die* does not contain the named attribute, the function returns DW\_DLV\_NO\_ENTRY and sets argument *err*. For other errors, it returns DW\_DLV\_ERROR and sets argument *err*.

## ERRORS

Function **dwarf\_attr**() can fail with the following errors:

- \[DW\_DLE\_ARGUMENT\]

  Either of arguments *die* or *atp* was NULL.

- \[DW\_DLE\_NO\_ENTRY\]

  Argument *die* had no attribute corresponding to the value in argument *attr*.

## SEE ALSO

[dwarf(3)](/dwarf/3.md), [dwarf\_attrlist(3)](/dwarf_attrlist/3.md), [dwarf\_attroffset(3)](/dwarf_attroffset/3.md), [dwarf\_hasattr(3)](/dwarf_hasattr/3.md), [dwarf\_hasform(3)](/dwarf_hasform/3.md), [dwarf\_whatattr(3)](/dwarf_whatattr/3.md), [dwarf\_whatform(3)](/dwarf_whatform/3.md)
