unw_getcontext - Man Page

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

Info

29 August 2023 Programming Library