Man Linux: Main Page and Category List

NAME

       unw_getcontext -- get initial machine-state

SYNOPSIS

       #include <libunwind.h>

       int unw_getcontext(unw_context_t *ucp);

DESCRIPTION

       The  unw_getcontext() routine initializes the context structure pointed
       to by ucp with the machine-state of the call-site.  The  exact  set  of
       registers  stored  by  unw_getcontext()  is  platform-specific, but, in
       general,  at   least   all   preserved   (``callee-saved'')   and   all
       frame-related registers, such as the stack-pointer, will be stored.

       This routine is normally implemented as a macro and applications should
       not attempt to take its address.

PLATFORM-SPECIFIC NOTES

       On IA-64, unw_context_t has a layout that is compatible  with  that  of
       ucontext_t  and  such  structures  can be initialized with getcontext()
       instead of unw_getcontext().  However, the reverse is not true  and  it
       is not safe to use structures initialized by unw_getcontext() in places
       where a structure initialized by getcontext() is expected.  The  reason
       for  this  asymmetry  is that unw_getcontext() is optimized for maximum
       performance and does not, for example, save the signal mask.

RETURN VALUE

       On successful completion, unw_getcontext()  returns  0.   Otherwise,  a
       value of -1 is returned.

THREAD AND SIGNAL SAFETY

       unw_getcontext()  is  thread-safe  as well as safe to use from a signal
       handler.

SEE ALSO

       libunwind(3), unw_init_local(3)

AUTHOR

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