FreeBSD manual
download PDF document: unw_getcontext.3.pdf
UNW_GETCONTEXT(3libunwind) Programming Library UNW_GETCONTEXT(3libunwind)
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(3libunwind), unw_init_local(3libunwind)
AUTHOR
David Mosberger-Tang
Email: dmosberger@gmail.com
WWW: http://www.nongnu.org/libunwind/.
Programming Library 29 August 2023 UNW_GETCONTEXT(3libunwind)