I would appreciate any donations. Wishlist or send e-mail type donations to maekawa AT daemon-systems.org.

Thank you.


DWARF_GET_STR(3)           Library Functions Manual           DWARF_GET_STR(3)

NAME
     dwarf_get_str - retrieve a string from the DWARF string section

LIBRARY
     DWARF Access Library (libdwarf, -ldwarf)

SYNOPSIS
     #include <libdwarf.h>

     int
     dwarf_get_str(Dwarf_Debug dbg, Dwarf_Off offset, char **string,
         Dwarf_Signed *len, Dwarf_Error *err);

DESCRIPTION
     Function dwarf_get_str() retrieves a NUL-terminated string from the DWARF
     string section ".debug_str".

     Argument dbg should reference a DWARF debug context allocated using
     dwarf_init(3).

     Argument offset should be an offset, relative to the ".debug_str"
     section, specifying the start of the desired string.

     Argument string should point to a location which will hold a returned
     pointer to a NUL-terminated string.

     Argument len should point to a location which will hold the length of the
     returned string.  The returned length does not include the space needed
     for the NUL-terminator.

     If argument err is not NULL, it will be used to store error information
     in case of an error.

RETURN VALUES
     Function dwarf_get_str() returns DW_DLV_OK when it succeeds.  It returns
     DW_DLV_NO_ENTRY if there is no ".debug_str" section associated with the
     specified debugging context, or if the provided offset offset is at the
     very end of ".debug_str" section.  In case of an error, it returns
     DW_DLV_ERROR and sets the argument err.

ERRORS
     Function dwarf_get_str() can fail with:

     [DW_DLE_ARGUMENT]       One of the arguments dbg, string or len was NULL.

     [DW_DLE_ARGUMENT]       Argument offset was out of range.

     [DW_DLE_NO_ENTRY]       The debugging context dbg did not contain a
                             ".debug_str" string section.

     [DW_DLE_NO_ENTRY]       Argument offset was at the very end of the
                             ".debug_str" section.

EXAMPLE
     To retrieve all the strings in the DWARF string section, use:

           Dwarf_Debug dbg;
           Dwarf_Off offset;
           Dwarf_Signed len;
           Dwarf_Error de;
           char *str;
           int ret

           offset = 0;
           while ((ret = dwarf_get_str(dbg, offset, &str, &len, &de)) ==
                   DW_DLV_OK) {
                   /* .. Use the retrieved string. .. */
                   offset += len + 1; /* Account for the terminating NUL. */
           }

           if (ret == DW_DLV_ERROR)
                   warnx("dwarf_get_str: %s", dwarf_errmsg(de));

SEE ALSO
     dwarf(3), dwarf_init(3)

NetBSD 8.0                       April 3, 2011                      NetBSD 8.0