UNW_INIT_LOCAL(3) Programming Library UNW_INIT_LOCAL(3)NAMEunw_init_local-- initialize cursor for local unwinding
SYNOPSIS
#include <libunwind.h>
int unw_init_local(unw_cursor_t *c, unw_context_t *ctxt);
DESCRIPTION
The unw_init_local() routine initializes the unwind cursor pointed to
by c with the machine-state in the context structure pointed to by
ctxt. As such, the machine-state pointed to by ctxt identifies the
initial stack frame at which unwinding starts. The machine-state must
remain valid for the duration for which the cursor c is in use.
The unw_init_local() routine can be used only for unwinding in the
address space of the current process (i.e., for local unwinding). For
all other cases, unw_init_remote() must be used instead. From a behav‐
ioral point of view, the call:
ret = unw_init_local(&cursor, &ucontext);
is equivalent to:
ret = unw_init_remote(&cursor, unw_local_addr_space,
&ucontext);
However, unwind performance may be better when using unw_init_local().
Also, unw_init_local() is available even when UNW_LOCAL_ONLY has been
defined before including <libunwind.h>, whereas unw_init_remote() is
not.
RETURN VALUE
On successful completion, unw_init_local() returns 0. Otherwise the
negative value of one of the error-codes below is returned.
THREAD AND SIGNAL SAFETYunw_init_local() is thread-safe as well as safe to use from a signal
handler.
ERRORS
UNW_EINVAL
unw_init_local() was called in a version of libunwind which
supports remote unwinding only (this normally happens when call‐
ing unw_init_local() for a cross-platform version of libunwind).
UNW_EUNSPEC
An unspecified error occurred.
UNW_EBADREG
A register needed by unw_init_local() wasn't accessible.
SEE ALSOlibunwind(3), unw_init_remote(3)AUTHOR
David Mosberger-Tang
Hewlett-Packard Labs
Palo-Alto, CA 94304
Email: davidm@hpl.hp.com
WWW: http://www.hpl.hp.com/research/linux/libunwind/.
Programming Library 05 August 2004 UNW_INIT_LOCAL(3)