dwarf_finish(3)

dwarf_finish3

Free resources associated with a debug descriptor

Usage

#include <libdwarf.h>

int

dwarf_finish(Dwarf_Debug dbg, Dwarf_Error *err);

int

dwarf_object_finish(Dwarf_Debug dbg, Dwarf_Error *err);

Library

library “libdwarf”

Overview

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

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

Releases

25 releases since FreeBSD 11.0-RELEASE; the text changed 1 time.

  1. 11.0–12.0
  2. 12.1–16.0

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.