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 in-
       struction 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	proce-
       dure 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 procedure. The	offp argument is a pointer  to
       a  word	that  is  used	to  return  the	 byte  offset  of the instruc-
       tion-pointer relative to	the start of the procedure.   Lastly,  arg  is
       the  address  space argument that should	be used	when accessing the ad-
       dress 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	 argu-
       ment.

       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_by_ip()	may return the
       name of a label or a preceding (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 ip.

RETURN VALUE
       On successful completion, unw_get_proc_name_by_ip() returns  0.	Other-
       wise 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
       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_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+14.3.quarterly>

home | help