Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
UNW_GE...OC_NAME(3libunwind) Programming Library  UNW_GE...OC_NAME(3libunwind)

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 argu-
       ment  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, rel-
       ative 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  re-
       turn  a value of	0x80 in	the word pointed to by offp (assuming the pro-
       cedure is at least 0x80 bytes long).

       Note that on some platforms there is no reliable	way to distinguish be-
       tween procedure names and ordinary labels. Furthermore, if  symbol  in-
       formation has been stripped from	a program, procedure names may be com-
       pletely	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 preceding (nearby) procedure.   However,  the  offset  re-
       turned  through offp is always relative to the returned name, which en-
       sures 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  ad-
       dress 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() callback (see unw_create_addr_space(3libunwind)).

SEE ALSO
       libunwind(3libunwind), unw_get_proc_info(3libunwind)

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

Programming Library		29 August 2023	  UNW_GE...OC_NAME(3libunwind)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=unw_get_proc_name&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help