| DWARF_ATTRLIST(3) | Library Functions Manual | DWARF_ATTRLIST(3) | 
dwarf_attrlist —
#include <libdwarf.h>
int
  
  dwarf_attrlist(Dwarf_Die die,
    Dwarf_Attribute **attrbuf,
    Dwarf_Signed *attrcount, Dwarf_Error
    *err);
dwarf_attrlist() retrieves the DWARF attribute
  descriptors associated with a debugging information entry descriptor in
  argument die. The descriptors are returned as an array
  of values of the opaque type Dwarf_Attribute. The data
  associated with each returned attribute descriptor may be queried using the
  form query functions in the
  dwarf(3) API set.
Argument attrbuf points to a location that will hold a pointer to the returned array of DWARF attribute descriptors. Argument attrcount points to a location that will hold the number of descriptors in the returned array.
If argument err is
    non-NULL, it is used to
    return an error descriptor in case of an error.
dwarf_dealloc() function.
dwarf_attrlist() returns
  DW_DLV_OK on success.
If the debugging information entry descriptor denoted by argument
    die does not contain any attribute, the function
    returns DW_DLV_NO_ENTRY and sets argument
    err. For other errors, it returns
    DW_DLV_ERROR and sets argument
    err.
Dwarf_Die dw_die;
Dwarf_Error dw_e;
Dwarf_Unsigned dw_count;
Dwarf_Attribute *dw_attributes;
int error, i;
... variable dw_die contains a reference to the DIE of interest ...
/* Retrieve the attribute list from the DIE. */
if ((error = dwarf_attrlist(dw_die, &dw_attributes, &dw_count,
	&dw_e)) != DW_DLV_OK)
	errx(EXIT_FAILURE, "dwarf_attrlist: %s", dwarf_errmsg(dw_e));
/* Process the attribute list. */
for (i = 0; i < dw_count; ++i) {
	/* Use the returned pointers in dw_attributes[i] here. */
}
dwarf_attrlist() can fail with the following
  errors:
DW_DLE_ARGUMENT]NULL.DW_DLE_NO_ENTRY]DW_DLE_MEMORY]| March 13, 2022 | NetBSD 10.0 |