NAME
dwarf_next_types_section
—
step through .debug_types sections in a
debug context
LIBRARY
library “libdwarf”
SYNOPSIS
#include
<libdwarf.h>
int
dwarf_next_types_section
(Dwarf_Debug
dbg, Dwarf_Error *err);
DESCRIPTION
Functiondwarf_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.