Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dwarf_finish(3) [freebsd man page]

DWARF_FINISH(3) 					   BSD 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)); 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
elf_end(3), dwarf_elf_init(3), dwarf_get_elf(3), dwarf_init(3), dwarf_object_init(3) BSD
November 9, 2011 BSD

Check Out this Related Man Page

DWARF_NEXT_TYPES_SECTION(3)				   BSD Library Functions Manual 			       DWARF_NEXT_TYPES_SECTION(3)

NAME
dwarf_next_types_section -- step through .debug_types sections in a debug context LIBRARY
DWARF Access Library (libdwarf, -ldwarf) SYNOPSIS
#include <libdwarf.h> int dwarf_next_types_section(Dwarf_Debug dbg, Dwarf_Error *err); DESCRIPTION
Function dwarf_next_types_section() steps through the ``.debug_types'' sections found in a debug context. Argument dbg should reference a DWARF debug context allocated using dwarf_init(3). Argument err should point to a location that will hold an error descriptor in case of an error. When a DWARF debug context is allocated using dwarf_init(3), an internal pointer associated with the context will point to the first ``.debug_types'' section present in the debug object. When the application calls function dwarf_next_types_section(), this internal pointer will move to the next ``.debug_types'' section present. On stepping past the last ``.debug_types'' section left in the debug context, func- tion dwarf_next_types_section() returns DW_DLV_NO_ENTRY. The next call to the function will restart from the first ``.debug_types'' section in the debug context. Application code should call function dwarf_next_cu_header_c(3) to iterate though the type units associated with the current ``.debug_types'' section. RETURN VALUES
On success, function dwarf_next_types_section() returns DW_DLV_OK. In case of an error, it returns DW_DLV_ERROR and sets argument err. When there are no more ``.debug_types'' sections left to traverse, it returns DW_DLV_NO_ENTRY. COMPATIBILITY
This function is an extension to the DWARF(3) API. ERRORS
The dwarf_next_types_section() function may fail with the following errors: [DW_DLE_ARGUMENT] Argument dbg was NULL. EXAMPLES
To iterate though every type unit in all the ``.debug_types'' sections found in a debug context: Dwarf_Debug dbg; Dwarf_Sig8 sig8; Dwarf_Unsigned typeoff; Dwarf_Error de; ... allocate dbg using dwarf_init() etc ... do { while ((ret = dwarf_next_cu_header_c(dbg, 0, NULL, NULL, NULL, NULL, NULL, NULL, &sig8, &typeoff, NULL, &de)) == DW_DLV_OK) { /* Access DIEs etc ... */ } } while (dwarf_next_types_section(dbg, &de) == DW_DLV_OK); SEE ALSO
dwarf(3), dwarf_init(3), dwarf_next_cu_header_c(3) BSD
December 20, 2014 BSD
Man Page