mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-23 12:03:41 +01:00
81 lines
2.5 KiB
TeX
81 lines
2.5 KiB
TeX
\documentclass{article}
|
|
\usepackage[fancyhdr,pdf]{latex2man}
|
|
|
|
\input{common.tex}
|
|
|
|
\begin{document}
|
|
|
|
\begin{Name}{3}{unw\_init\_local}{David Mosberger-Tang}{Programming Library}{unw\_init\_local}unw\_init\_local -- initialize cursor for local unwinding
|
|
\end{Name}
|
|
|
|
\section{Synopsis}
|
|
|
|
\File{\#include $<$libunwind.h$>$}\\
|
|
|
|
\Type{int} \Func{unw\_init\_local}(\Type{unw\_cursor\_t~*}\Var{c}, \Type{unw\_context\_t~*}\Var{ctxt});\\
|
|
|
|
\section{Description}
|
|
|
|
The \Func{unw\_init\_local}() routine initializes the unwind cursor
|
|
pointed to by \Var{c} with the machine-state in the context structure
|
|
pointed to by \Var{ctxt}. As such, the machine-state pointed to by
|
|
\Var{ctxt} identifies the initial stack frame at which unwinding
|
|
starts. The machine-state must remain valid for the duration for
|
|
which the cursor \Var{c} is in use.
|
|
|
|
The \Func{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, \Func{unw\_init\_remote}() must be used instead.
|
|
From a behavioral point of view, the call:
|
|
|
|
\begin{verbatim}
|
|
ret = unw_init_local(&cursor, &ucontext);
|
|
\end{verbatim}
|
|
is equivalent to:
|
|
|
|
\begin{verbatim}
|
|
ret = unw_init_remote(&cursor, unw_local_addr_space,
|
|
&ucontext);
|
|
\end{verbatim}
|
|
However, unwind performance may be better when using
|
|
\Func{unw\_init\_local}(). Also, \Func{unw\_init\_local}() is
|
|
available even when \Const{UNW\_LOCAL\_ONLY} has been defined before
|
|
including \File{$<$libunwind.h$>$}, whereas \Func{unw\_init\_remote}()
|
|
is not.
|
|
|
|
\section{Return Value}
|
|
|
|
On successful completion, \Func{unw\_init\_local}() returns 0.
|
|
Otherwise the negative value of one of the error-codes below is
|
|
returned.
|
|
|
|
\section{Thread and Signal Safety}
|
|
|
|
\Func{unw\_init\_local}() is thread-safe as well as safe to use from a
|
|
signal handler.
|
|
|
|
\section{Errors}
|
|
|
|
\begin{Description}
|
|
\item[\Const{UNW\_EINVAL}] \Func{unw\_init\_local}() was called in a
|
|
version of \Prog{libunwind} which supports remote unwinding only
|
|
(this normally happens when calling \Func{unw\_init\_local}() for a
|
|
cross-platform version of \Prog{libunwind}).
|
|
\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred.
|
|
\item[\Const{UNW\_EBADREG}] A register needed by \Func{unw\_init\_local}()
|
|
wasn't accessible.
|
|
\end{Description}
|
|
|
|
\section{See Also}
|
|
|
|
\SeeAlso{libunwind(3)}, \SeeAlso{unw\_init\_remote(3)}
|
|
|
|
\section{Author}
|
|
|
|
\noindent
|
|
David Mosberger-Tang\\
|
|
Email: \Email{dmosberger@gmail.com}\\
|
|
WWW: \URL{http://www.nongnu.org/libunwind/}.
|
|
\LatexManEnd
|
|
|
|
\end{document}
|