dwarf_get_weaks
,
dwarf_weak_cu_offset
,
dwarf_weak_die_offset
,
dwarf_weak_name_offsets
,
dwarf_weakname
—
retrieve information about weak symbols
DWARF Access Library (libdwarf, -ldwarf)
#include <libdwarf.h>
int
dwarf_get_weaks
(Dwarf_Debug dbg,
Dwarf_Weak **weaks, Dwarf_Signed
*nweaks, Dwarf_Error *err);
int
dwarf_weak_cu_offset
(Dwarf_Weak
weak, Dwarf_Off *cu_offset,
Dwarf_Error *err);
int
dwarf_weak_die_offset
(Dwarf_Weak
weak, Dwarf_Off *die_offset,
Dwarf_Error *err);
int
dwarf_weak_name_offsets
(Dwarf_Weak
weak, char **name, Dwarf_Off
*die_offset, Dwarf_Off *cu_die_offset,
Dwarf_Error *err);
int
dwarf_weakname
(Dwarf_Weak weak,
char **name, Dwarf_Error
*err);
These functions retrieve information about weak symbols from the lookup tables
in the (SGI-specific) “.debug_weaknames” section. Information
about weak symbols is returned using opaque descriptors of type
Dwarf_Weak. Applications need to use the functions
described below to retrieve the name and offset information contained in these
descriptors.
Function dwarf_get_weaks
() retrieves
descriptors for all the weak symbols associated with the DWARF debug context
specified by argument dbg. The argument
weaks should point to a location that will be set to a
pointer to an array of Dwarf_Weak descriptors. The
argument nweaks should point to a location that will
be set to the number of descriptors returned.
Function dwarf_weak_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 weak. Argument
cu_offset should point to a location that will hold
the returned offset.
Function dwarf_weak_die_offset
() retrieves
the offset, relative to the “.debug_info” section, of the
debugging information entry associated with the argument
weak, and stores it into the location pointed to by
the argument die_offset.
Function dwarf_weak_name_offsets
()
retrieves the name and offsets for the debugging information entry for
argument weak. 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
weak.
Function dwarf_weakname
() 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 weak.
The memory area used for the array of Dwarf_Weak
descriptors returned in argument weaks by function
dwarf_get_weaks
() 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_weaks_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_weak_name_offsets
() and
dwarf_weakname
() 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, weak,
weaks, name, or
nweaks was NULL.
- [
DW_DLE_NO_ENTRY
]
- The DWARF debugging context referenced by argument
dbg did not contain information about weak
symbols.