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

FreeBSD Manual Pages

  
 
  

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

NAME
     dwarf_new_die -- allocate a new debugging information entry

LIBRARY
     DWARF Access Library (libdwarf, -ldwarf)

SYNOPSIS
     #include <libdwarf.h>

     Dwarf_P_Die
     dwarf_new_die(Dwarf_P_Debug dbg, Dwarf_Tag	tag, Dwarf_P_Die parent,
	 Dwarf_P_Die child, Dwarf_P_Die	left, Dwarf_P_Die right,
	 Dwarf_Error *err);

DESCRIPTION
     Function dwarf_new_die() allocates	a new DWARF debugging information en-
     try and links it to another debugging information entry.

     Argument dbg should reference a DWARF producer instance allocated using
     dwarf_producer_init(3) or dwarf_producer_init_b(3).

     Argument tag should specify the tag of the	newly created debugging	infor-
     mation entry.  Valid values for this argument are those for the DW_TAG_*
     symbols defined in	<libdwarf.h>.

     Argument parent specifies the parent link of the debugging	information
     entry.

     Argument child specifies the first	child link of the debugging informa-
     tion entry.

     Argument left specifies the left sibling link of the debugging informa-
     tion entry.

     Argument right specifies the right	sibling	link of	the debugging informa-
     tion entry.

     Only one of arguments parent, child, left and right is allowed to be non-
     NULL.  Application	code can subsequently call the function
     dwarf_die_link(3) to change the links for the created debugging informa-
     tion entry.

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

RETURN VALUES
     On	success, function dwarf_new_die() returns the newly created debugging
     information entry.	 In case of an error, function dwarf_new_die() returns
     DW_DLV_BADADDR and	sets the argument err.

ERRORS
     Function dwarf_new_die() can fail with:

     [DW_DLE_ARGUMENT]	Argument dbg was NULL.

     [DW_DLE_ARGUMENT]	More than one of the arguments parent, child, left and
			right were non-NULL.

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

EXAMPLES
     To	create debugging information entries and add them to the producer in-
     stance, use:

	   Dwarf_P_Debug dbg;
	   Dwarf_P_Die die1, die2;
	   Dwarf_Error de;

	   /* ... assume dbg refers to a DWARF producer	instance ... */

	   die1	= dwarf_new_die(dbg, DW_TAG_compilation_unit, NULL, NULL, NULL,
	       NULL, &de);
	   if (die1 == NULL) {
		   warnx("dwarf_new_die	failed:	%s", dwarf_errmsg(-1));
		   return;
	   }

	   die2	= dwarf_new_die(dbg, DW_TAG_base_type, die1, NULL, NULL,
	       NULL, &de);
	   if (die1 == NULL) {
		   warnx("dwarf_new_die	failed:	%s", dwarf_errmsg(-1));
		   return;
	   }

	   if (dwarf_add_die_to_debug(dbg, die1, &de) != DW_DLV_OK) {
		   warnx("dwarf_add_die_to_debug failed: %s", dwarf_errmsg(-1));
		   return;
	   }

SEE ALSO
     dwarf(3), dwarf_add_die_to_debug(3), dwarf_die_link(3),
     dwarf_producer_init(3), dwarf_producer_init_b(3)

BSD			       September 4, 2011			   BSD

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

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

home | help