Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

FreeBSD 11.0 - man page for dwarf_next_types_section (freebsd section 3)

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

dwarf_next_types_section -- step through .debug_types sections in a debug context
DWARF Access Library (libdwarf, -ldwarf)
#include <libdwarf.h> int dwarf_next_types_section(Dwarf_Debug dbg, Dwarf_Error *err);
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.
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.
This function is an extension to the DWARF(3) API.
The dwarf_next_types_section() function may fail with the following errors: [DW_DLE_ARGUMENT] Argument dbg was NULL.
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);
dwarf(3), dwarf_init(3), dwarf_next_cu_header_c(3)
December 20, 2014 BSD