Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DWARF_ATTRLIST(3)	 BSD Library Functions Manual	     DWARF_ATTRLIST(3)

NAME
     dwarf_attrlist -- retrieve	DWARF attribute	descriptors

LIBRARY
     DWARF Access Library (libdwarf, -ldwarf)

SYNOPSIS
     #include <libdwarf.h>

     int
     dwarf_attrlist(Dwarf_Die die, Dwarf_Attribute **attrbuf,
	 Dwarf_Signed *attrcount, Dwarf_Error *err);

DESCRIPTION
     Function dwarf_attrlist() retrieves the DWARF attribute descriptors asso-
     ciated 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	de-
     scriptor 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 re-
     turned 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.

   Memory Management
     In	the current implementation, the	memory allocated for each DWARF	attri-
     bute descriptor and for the returned array	of descriptors is managed by
     the library and the application does not need to explicitly free the re-
     turned pointers.  However,	for compatibility with other implementations
     of	the dwarf(3) API, the application is permitted to pass the pointers
     returned by to the	dwarf_dealloc()	function.

RETURN VALUES
     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.

EXAMPLES
     To	retrieve the attribute list for	a DWARF	debugging information entry
     use:

	   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. */
	   }

ERRORS
     Function dwarf_diename() can fail with the	following errors:

     [DW_DLE_ARGUMENT]	Arguments die, attrbuf,	or attrcount were NULL.

     [DW_DLE_NO_ENTRY]	Argument die had no attributes.

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

SEE ALSO
     dwarf(3), dwarf_attr(3), dwarf_dealloc(3),	dwarf_hasattr(3),
     dwarf_hasform(3), dwarf_whatattr(3), dwarf_whatform(3)

BSD			       November	9, 2011				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=dwarf_attrlist&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help