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

FreeBSD Manual Pages

  
 
  

home | help
UNW_GET_PROC_INFO(3)	     Programming Library	  UNW_GET_PROC_INFO(3)

NAME
       unw_get_proc_info -- get	info on	current	procedure

SYNOPSIS
       #include	<libunwind.h>

       int unw_get_proc_info(unw_cursor_t *cp, unw_proc_info_t *pip);

DESCRIPTION
       The unw_get_proc_info() routine returns auxiliary information about the
       procedure that created the stack	frame identified by argument cp.   The
       pip  argument is	a pointer to a structure of type unw_proc_info_t which
       is used to return the information. The unw_proc_info_t has the  follow-
       ing members:

       unw_word_t start_ip
	       The  address of the first instruction of	the procedure. If this
	      address cannot be	determined (e.g., due to lack of unwind	infor-
	      mation), the start_ip member is cleared to 0.

       unw_word_t end_ip
	       The address of the first	instruction beyond the end of the pro-
	      cedure. If this address cannot be	determined (e.g., due to  lack
	      of unwind	information), the end_ip member	is cleared to 0.

       unw_word_t lsda
	       The  address  of	 the  language-specific	data-area (LSDA). This
	      area normally contains language-specific information needed dur-
	      ing  exception handling. If the procedure	has no such area, this
	      member is	cleared	to 0.

       unw_word_t handler
	       The address of the exception handler routine. This is sometimes
	      called the personality routine. If the procedure does not	define
	      a	personality routine, the handler member	is cleared to 0.

       unw_word_t gp
	       The global-pointer of the procedure. On platforms that  do  not
	      use  a  global  pointer,	this  member  may contain an undefined
	      value. On	all other platforms, it	must be	set either to the cor-
	      rect global-pointer value	of the procedure or to 0 if the	proper
	      global-pointer cannot be obtained	for some reason.

       unw_word_t flags
	       A set of	 flags.	 There	are  currently	no  target-independent
	      flags.	  For	   the	    IA-64     target,	  the	  flag
	      UNW_PI_FLAG_IA64_RBS_SWITCH is set if the	procedure  may	switch
	      the register-backing store.

       int format
	       The  format  of	the unwind-info	for this procedure. If the un-
	      wind-info	consists of dynamic procedure info, format is equal to
	      UNW_INFO_FORMAT_DYNAMIC.	If the unwind-info consists of a (tar-
	      get-specific) unwind table, it  is  equal	 to  to	 UNW_INFO_FOR-
	      MAT_TABLE.   All other values are	reserved for future use	by li-
	      bunwind.	This member exists for	use  by	 the  find_proc_info()
	      call-back	      (see	 unw_create_addr_space(3)).	   The
	      unw_get_proc_info() routine may return  an  undefined  value  in
	      this member.

       int unwind_info_size
	       The  size  of  the unwind-info in bytes.	This member exists for
	      use   by	 the   find_proc_info()	  call-back   (see    unw_cre-
	      ate_addr_space(3)).   The	unw_get_proc_info() routine may	return
	      an undefined value in this member.

       void *unwind_info
	       The pointer to the unwind-info.	If no unwind  info  is	avail-
	      able,  this  member must be set to NULL.	This member exists for
	      use   by	 the   find_proc_info()	  call-back   (see    unw_cre-
	      ate_addr_space(3)).   The	unw_get_proc_info() routine may	return
	      an undefined value in this member.

       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 alwas	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() returns 0.	 Otherwise the
       negative	value of one of	the error-codes	below is returned.

THREAD AND SIGNAL SAFETY
       unw_get_proc_info() 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 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()	may return any error returned  by  the
       access_mem() call-back (see unw_create_addr_space(3)).

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

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

Programming Library		16 August 2007		  UNW_GET_PROC_INFO(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | THREAD AND SIGNAL SAFETY | ERRORS | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=unw_get_proc_info&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help