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

FreeBSD Manual Pages

  
 
  

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

NAME
     dwarf_finish, dwarf_object_finish -- free resources associated with a de-
     bug descriptor

LIBRARY
     DWARF Access Library (libdwarf, -ldwarf)

SYNOPSIS
     #include <libdwarf.h>

     int
     dwarf_finish(Dwarf_Debug dbg, Dwarf_Error *err);

     int
     dwarf_object_finish(Dwarf_Debug dbg, Dwarf_Error *err);

DESCRIPTION
     The dwarf_finish()	and dwarf_object_finish() functions are	used to	re-
     lease the resources associated with a debug descriptor allocated by a
     prior call	to dwarf_init(3) and dwarf_object_init(3) respectively.

     Argument dbg denotes a valid Dwarf_Debug instance.	 Argument err will be
     used to record error information in case of an error.

     After a call to dwarf_finish() or dwarf_object_finish(), the argument dbg
     will be invalid and should	not be used further.

     For Dwarf_Debug descriptors opened	using dwarf_init(3), the application
     would need	to explicitly release the Elf instance associated with the de-
     scriptor by first retrieving the instance using dwarf_get_elf(3) and
     closing it	using elf_end(3).

RETURN VALUES
     These functions return DW_DLV_OK if successful.  In case of an error, the
     functions return DW_DLV_ERROR and record additional information in	argu-
     ment err.

EXAMPLES
     To	deallocate a Dwarf_Debug instance allocated using dwarf_elf_init(3)
     use:

	   Dwarf_Debug dbg;
	   Dwarf_Error de;

	   if (dwarf_finish(dbg, &de) != DW_DLV_OK)
		   errx(EXIT_FAILURE, "dwarf_finish: %s", dwarf_errmsg(de));

     To	deallocate a Dwarf_Debug instance allocated using dwarf_object_init(3)
     use:

	   Dwarf_Debug dbg;
	   Dwarf_Error de;

	   if (dwarf_object_finish(dbg,	&de) !=	DW_DLV_OK)
		   errx(EXIT_FAILURE, "dwarf_object_finish: %s",
		       dwarf_errmsg(de));

     To	deallocate a Dwarf_Debug instance allocated using dwarf_init(3)	use:

	   Dwarf_Debug dbg;
	   Dward_Error de;
	   Elf *e;

	   if (dwarf_get_elf(dbg, &e, &de) != DW_DLV_OK)
		   errx(EXIT_FAILURE, "dwarf_get_elf: %s", dwarf_errmsg(&de));

	   if (dwarf_finish(dbg, &de) != DW_DLV_OK)
		   errx(EXIT_FAILURE, "dwarf_finish: %s", dwarf_errmsg(de));

	   (void) elf_end(e);

SEE ALSO
     dwarf_elf_init(3),	dwarf_get_elf(3), dwarf_init(3), dwarf_object_init(3),
     elf_end(3)

BSD			       November	9, 2011				   BSD

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

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

home | help