Provided by: libunwind-dev_1.2.1-8ubuntu0.1_amd64 bug

NAME

       unw_get_proc_name -- get name of current procedure

SYNOPSIS

       #include <libunwind.h>

       int unw_get_proc_name(unw_cursor_t *cp, char *bufp, size_t len, unw_word_t *offp);

DESCRIPTION

       The unw_get_proc_name() routine returns the name of the procedure that created the stack frame identified
       by argument cp.  The bufp argument is a pointer to a character buffer that is at least  len  bytes  long.
       This buffer is used to return the name of the procedure. The offp argument is a pointer to a word that is
       used to return the byte-offset of the instruction-pointer saved in the  stack  frame  identified  by  cp,
       relative  to  the  start  of the procedure. For example, if procedure foo() starts at address 0x40003000,
       then invoking unw_get_proc_name() on a stack frame with an instruction-pointer value of 0x40003080  would
       return  a  value  of  0x80  in the word pointed to by offp (assuming the procedure is at least 0x80 bytes
       long).

       Note that on some platforms there is no reliable way to distinguish between procedure names and  ordinary
       labels.  Furthermore,  if  symbol  information  has  been stripped from a program, procedure names may be
       completely unavailable or may be limited to those exported via a dynamic symbol  table.  In  such  cases,
       unw_get_proc_name()  may  return  the  name  of a label or a preceeding (nearby) procedure.  However, the
       offset returned through offp is always relative to the  returned  name,  which  ensures  that  the  value
       (address)  of  the returned name plus the returned offset will always be equal to the instruction-pointer
       of the stack frame identified by cp.

RETURN VALUE

       On successful completion, unw_get_proc_name() returns 0.  Otherwise the negative  value  of  one  of  the
       error-codes below is returned.

THREAD AND SIGNAL SAFETY

       unw_get_proc_name() is thread-safe. If cursor cp is in the local address-space, this routine is also safe
       to use from a signal handler.

ERRORS

       UNW_EUNSPEC
               An unspecified error occurred.

       UNW_ENOINFO
               Libunwind was unable to determine the name of the procedure.

       UNW_ENOMEM
               The procedure name is too long to fit in the buffer provided. A truncated version of the name has
              been returned.

       In  addition,  unw_get_proc_name()  may  return  any  error  returned  by the access_mem() call-back (see
       unw_create_addr_space(3)).

SEE ALSO

       libunwind(3), unw_get_proc_info(3)

AUTHOR

       David Mosberger-Tang
       Email: dmosberger@gmail.com
       WWW: http://www.nongnu.org/libunwind/.