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

FreeBSD Manual Pages

  
 
  

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

NAME
     unw_get_proc_name_by_ip -- get procedure name

SYNOPSIS
     #include <libunwind.h>

     int unw_get_proc_name_by_ip(unw_addr_space_t as, unw_word_t ip, char *bufp,
     size_t len, unw_word_t *offp, void *arg);

DESCRIPTION
     The  unw_get_proc_name_by_ip() routine returns the name of a procedure just
     like unw_get_proc_name(), except that the name is looked up by  instruction
     pointer (IP) instead of a cursor.

     The  routine  expects  the  following arguments: as is the address-space in
     which the instruction pointer should be looked up.  For a	look-up  in  the
     local  address-space, unw_local_addr_space can be passed for this argument.
     Argument ip is the instruction-pointer for which the procedure name  should
     be  looked up. 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 pro-
     cedure. The offp argument is a pointer to a word that is used to return the
     byte offset of the instruction-pointer relative to the start of the  proce-
     dure.   Lastly,  arg is the address space argument that should be used when
     accessing the address space. It has the same purpose as the argument of the
     same name for unw_init_remote().  When accessing the  local  address  space
     (first  argument is unw_local_addr_space), NULL must be passed for this ar-
     gument.

     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_by_ip()	may return the name of a label or a pre-
     ceding (nearby) procedure. However, the offset returned through offp is al-
     ways 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 ip.

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

THREAD AND SIGNAL SAFETY
     unw_get_proc_name_by_ip()	is  thread  safe.  If the local address-space is
     passed in argument as, this routine is also safe to use from a signal  han-
     dler.

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_by_ip() may return any error returned by the
     access_mem() callback (see unw_create_addr_space(3libunwind)).

SEE ALSO
     libunwind(3libunwind),		      unw_create_addr_space(3libunwind),
     unw_get_proc_name(3libunwind), unw_init_remote(3libunwind)

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

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

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

home | help