dwarf_get_funcs
,
dwarf_func_cu_offset
,
dwarf_func_die_offset
,
dwarf_func_name_offsets
,
dwarf_funcname
—
retrieve information about static functions
DWARF Access Library (libdwarf, -ldwarf)
#include <libdwarf.h>
int
dwarf_get_funcs
(Dwarf_Debug dbg,
Dwarf_Func **funcs, Dwarf_Signed
*nfuncs, Dwarf_Error *err);
int
dwarf_func_cu_offset
(Dwarf_Func
func, Dwarf_Off *cu_offset,
Dwarf_Error *err);
int
dwarf_func_die_offset
(Dwarf_Func
func, Dwarf_Off *die_offset,
Dwarf_Error *err);
int
dwarf_func_name_offsets
(Dwarf_Func
func, char **name, Dwarf_Off
*die_offset, Dwarf_Off *cu_die_offset,
Dwarf_Error *err);
int
dwarf_funcname
(Dwarf_Func func,
char **name, Dwarf_Error
*err);
These functions retrieve information about static functions from the lookup
tables in the (SGI-specific) “.debug_funcnames” section.
Information about these functions is returned using opaque descriptors of type
Dwarf_Func. Applications need to use the functions
described below to retrieve the name and offset information contained in these
descriptors.
Function dwarf_get_funcs
() retrieves
descriptors for all the static functions associated with the DWARF debug
context specified by argument dbg. The argument
funcs should point to a location that will be set to a
pointer to an array of Dwarf_Func descriptors. The
argument nfuncs should point to a location that will
be set to the number of descriptors returned.
Function dwarf_func_cu_offset
() returns
the offset, relative to the “.debug_info” section, of the
compilation unit that contains the debugging information entry associated
with the argument func. Argument
cu_offset should point to a location that will hold
the returned offset.
Function dwarf_func_die_offset
() retrieves
the offset, relative to the “.debug_info” section, of the
debugging information entry associated with the argument
func, and stores it into the location pointed to by
the argument die_offset.
Function dwarf_func_name_offsets
()
retrieves the name and offsets for the debugging information entry for
argument func. Argument name
should point to a location which will be set to a pointer to a
NUL-terminated string containing the name of the associated debugging
information entry. Argument die_offset should point to
a location which will be set to the offset, relative to the
“.debug_info” section, of the associated debugging information
entry. Argument cu_die_offset should point to a
location which will be set to the offset, relative to the
“.debug_info” section, of the first debugging information
entry in the compilation unit associated with argument
func.
Function dwarf_funcname
() sets the
location pointed to by argument name to a pointer to a
NUL-terminated string holding the name of the debugging information entry
associated with the argument func.
The memory area used for the array of Dwarf_Func
descriptors returned in argument funcs by function
dwarf_get_funcs
() is owned by the
DWARF Access Library (libdwarf, -ldwarf). Application
code should not attempt to directly free this pointer. Portable code should
instead use the function
dwarf_funcs_dealloc(3)
to indicate that the memory area may be freed.
The memory area used for the string returned in the
name argument to functions
dwarf_func_name_offsets
() and
dwarf_funcname
() is owned by the
DWARF Access Library (libdwarf, -ldwarf). Portable
code should indicate that the memory area can be freed using the
dwarf_dealloc(3)
function.
If argument err is not NULL, these functions will use it
to store error information, in case of an error.
On success, these functions returns DW_DLV_OK
. In case
of an error, they return DW_DLV_ERROR
and set the
argument err.
These functions may fail with the following errors:
- [
DW_DLE_ARGUMENT
]
- One of the arguments cu_die_offset,
cu_offset, dbg,
die_offset, func,
funcs, name, or
nfuncs was NULL.
- [
DW_DLE_NO_ENTRY
]
- The DWARF debugging context referenced by argument
dbg did not contain information about static
functions.