DWARF_NEXT_TYPES_SECTION(3)                   FreeBSD Library Functions Manual

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, function
     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.

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

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.

SEE ALSO

     dwarf(3), dwarf_init(3), dwarf_next_cu_header_c(3)

FreeBSD 15.1-STABLE-HBSD       December 20, 2014   DWARF_NEXT_TYPES_SECTION(3)