| 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 |