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	auxil-
       iary  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  procedure, 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	proce-
       dure 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 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 for the purposes of libunwind,	the code of a procedure	is as-
       sumed to	occupy a single, contiguous range of addresses.	For this  rea-
       son,  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, discontiguous pieces, libunwind will treat each piece as
       a separate procedure.

RETURN VALUE
       On  successful  completion, unw_get_proc_info_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_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
       handler.

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_remote(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+14.3.quarterly>

home | help