GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
UNW_GET_PROC_INFO(3) Programming Library UNW_GET_PROC_INFO(3)

unw_get_proc_info -- get info on current procedure

#include <libunwind.h>

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

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 following 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 information), the start_ip member is cleared to 0.
unw_word_t end_ip
The address of the first instruction beyond the end of the procedure. 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 during 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 correct 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 unwind-info consists of dynamic procedure info, format is equal to UNW_INFO_FORMAT_DYNAMIC. If the unwind-info consists of a (target-specific) unwind table, it is equal to to UNW_INFO_FORMAT_TABLE. All other values are reserved for future use by libunwind. 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_create_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 available, this member must be set to NULL. 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.

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 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.

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

unw_get_proc_info() is thread-safe. If cursor cp is in the local address-space, this routine is also safe to use from a signal handler.

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)).

libunwind(3), unw_create_addr_space(3), unw_get_proc_name(3)

David Mosberger-Tang
Email: dmosberger@gmail.com
WWW: http://www.nongnu.org/libunwind/.
16 August 2007 Programming Library

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.