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

FreeBSD Manual Pages

  
 
  

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

NAME
     unw_get_proc_info_by_ip -- get procedure info by IP

SYNOPSIS
     #include <libunwind.h>

     int    unw_get_proc_info_by_ip(unw_addr_space_t	as,    unw_word_t    ip,
     unw_proc_info_t *pip, void *arg);

DESCRIPTION
     The unw_get_proc_info_by_ip() routine returns the same  kind  of  auxiliary
     information  about a procedure as unw_get_proc_info(), except that the info
     is looked up by instruction-pointer (IP) instead of a cursor. This is  more
     flexible because it is possible to look up the info for an arbitrary proce-
     dure,  even  if it is not part of the current call chain. However, since it
     is more flexible, it also tends to run slower (and often much slower)  than
     unw_get_proc_info().

     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 info  should
     be  looked  up  and pip is a pointer to a structure of type unw_proc_info_t
     which is used to return the info.	Lastly, arg is the address  space  argu-
     ment  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  ac-
     cessing  the  local address space (first argument is unw_local_addr_space),
     NULL must be passed for this argument.

     Note that for the purposes of libunwind, the code of a procedure is assumed
     to occupy a single, contiguous range of addresses. For this reason,  it  is
     always possible to describe the extent of a procedure with the start_ip and
     end_ip  members.  If a single function/routine is split into multiple, dis-
     contiguous pieces, libunwind will treat each piece as a separate procedure.

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

THREAD AND SIGNAL SAFETY
     unw_get_proc_info_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 locate unwind-info for the procedure.

     UNW_EBADVERSION
	     The unwind-info for the procedure has version or format that is not
	    understood by libunwind.

     In addition, unw_get_proc_info_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_get_proc_info(3libunwind),  unw_init_re-
     mote(3libunwind)

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

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

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

home | help