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.