Man Linux: Main Page and Category List

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);

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
       behavioral 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 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(3), unw_init_remote(3)

AUTHOR

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