Provided by: libunwind-dev_1.8.1-0.1ubuntu1_amd64 bug

NAME

       unw_init_local -- initialize cursor for local unwinding

SYNOPSIS

       #include <libunwind.h>

       int unw_init_local(unw_cursor_t *c, unw_context_t *ctxt);
       int unw_init_local2(unw_cursor_t *c, unw_context_t *ctxt, int flag);

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 is expected to be one provided by a call
       to  unw_getcontext();  as  such,  the  instruction  pointer  may  point to the instruction after the last
       instruction of a function, and libunwind will back-up the instruction pointer before beginning a walk  up
       the call stack. 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.   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.

       If the unw_context_t is known to be a signal frame (i.e., from the third argument in a sigaction  handler
       on  linux),  unw_init_local2()  should  be used for correct initialization on some platforms, passing the
       UNW_INIT_SIGNAL_FRAME flag.

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 SAFETY

       unw_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 calling 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 ALSO

       libunwind(3libunwind), unw_init_remote(3libunwind)

AUTHOR

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

Programming Library                              29 August 2023                       UNW_INIT_LOCAL(3libunwind)