mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-23 20:03:43 +01:00
38fe40cb1a
address-space. (Logical change 1.200)
81 lines
2.9 KiB
TeX
81 lines
2.9 KiB
TeX
\documentclass{article}
|
|
\usepackage[fancyhdr,pdf]{latex2man}
|
|
|
|
\input{common.tex}
|
|
|
|
\begin{document}
|
|
|
|
\begin{Name}{3}{unw\_init\_remote}{David Mosberger-Tang}{Programming Library}{unw\_init\_remote}unw\_init\_remote -- initialize cursor for remote unwinding
|
|
\end{Name}
|
|
|
|
\section{Synopsis}
|
|
|
|
\File{\#include $<$libunwind.h$>$}\\
|
|
|
|
\Type{int} \Func{unw\_init\_remote}(\Type{unw\_cursor\_t~*}\Var{c}, \Type{unw\_addr\_space\_t~}\Var{as}, \Type{void~*}\Var{arg});\\
|
|
|
|
\section{Description}
|
|
|
|
The \Func{unw\_init\_remote}() routine initializes the unwind cursor
|
|
pointed to by \Var{c} for unwinding in the address space identified by
|
|
\Var{as}. The \Var{as} argument can either be set to
|
|
\Var{unw\_local\_addr\_space} (local address space) or to an arbitrary
|
|
address space created with \Func{unw\_create\_addr\_space}().
|
|
|
|
The \Var{arg} void-pointer tells the address space exactly what entity
|
|
should be unwound. For example, if \Var{unw\_local\_addr\_space} is
|
|
passed in \Var{as}, then \Var{arg} needs to be a pointer to a context
|
|
structure containing the machine-state of the initial stack frame.
|
|
However, other address-spaces may instead expect a process-id, a
|
|
thread-id, or a pointer to an arbitrary structure which identifies the
|
|
stack-frame chain to be unwound. In other words, the interpretation
|
|
of \Var{arg} is entirely dependent on the address-space in use;
|
|
\Prog{libunwind} never interprets the argument in any way on its own.
|
|
|
|
Note that \Func{unw\_init\_remote}() can be used to initiate unwinding
|
|
in \emph{any} process, including the local process in which the
|
|
unwinder itself is running. However, for local unwinding, it is
|
|
generally preferable to use \Func{unw\_init\_local}() instead, because
|
|
it is easier to use and because it may perform better.
|
|
|
|
\section{Return Value}
|
|
|
|
On successful completion, \Func{unw\_init\_remote}() returns 0.
|
|
Otherwise the negative value of one of the error-codes below is
|
|
returned.
|
|
|
|
\section{Thread and Signal Safety}
|
|
|
|
\Func{unw\_init\_remote}() is thread-safe. If the local address-space
|
|
is passed in argument \Var{as}, this routine is also safe to use from
|
|
a signal handler.
|
|
|
|
\section{Errors}
|
|
|
|
\begin{Description}
|
|
\item[\Const{UNW\_EINVAL}] \Func{unw\_init\_remote}() was called in a
|
|
version of \Prog{libunwind} which supports local unwinding only
|
|
(this normally happens when defining \Const{UNW\_LOCAL\_ONLY} before
|
|
including \File{$<$libunwind.h$>$} and then calling
|
|
\Func{unw\_init\_remote}()).
|
|
\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred.
|
|
\item[\Const{UNW\_EBADREG}] A register needed by \Func{unw\_init\_remote}()
|
|
wasn't accessible.
|
|
\end{Description}
|
|
|
|
\section{See Also}
|
|
|
|
\SeeAlso{libunwind(3)}, \SeeAlso{unw\_create\_addr\_space(3)},
|
|
\SeeAlso{unw\_init\_local(3)}
|
|
|
|
\section{Author}
|
|
|
|
\noindent
|
|
David Mosberger-Tang\\
|
|
Hewlett-Packard Labs\\
|
|
Palo-Alto, CA 94304\\
|
|
Email: \Email{davidm@hpl.hp.com}\\
|
|
WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}.
|
|
\LatexManEnd
|
|
|
|
\end{document}
|