FreeBSD manual
download PDF document: dwarf_finish.3.pdf
DWARF_FINISH(3) FreeBSD Library Functions Manual DWARF_FINISH(3)
NAME
dwarf_finish, dwarf_object_finish - free resources associated with a
debug 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
release 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
descriptor 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
argument 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));
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)
FreeBSD 14.0-RELEASE-p11 November 9, 2011 FreeBSD 14.0-RELEASE-p11