1 \documentclass{article} 2 \usepackage[fancyhdr,pdf]{latex2man} 3 4 \input{common.tex} 5 6 \begin{document} 7 8 \begin{Name}{3}{unw\_init\_remote}{David Mosberger-Tang}{Programming Library}{unw\_init\_remote}unw\_init\_remote -- initialize cursor for remote unwinding 9 \end{Name} 10 11 \section{Synopsis} 12 13 \File{\#include $<$libunwind.h$>$}\\ 14 15 \Type{int} \Func{unw\_init\_remote}(\Type{unw\_cursor\_t~*}\Var{c}, \Type{unw\_addr\_space\_t~}\Var{as}, \Type{void~*}\Var{arg});\\ 16 17 \section{Description} 18 19 The \Func{unw\_init\_remote}() routine initializes the unwind cursor 20 pointed to by \Var{c} for unwinding in the address space identified by 21 \Var{as}. The \Var{as} argument can either be set to 22 \Var{unw\_local\_addr\_space} (local address space) or to an arbitrary 23 address space created with \Func{unw\_create\_addr\_space}(). 24 25 The \Var{arg} void-pointer tells the address space exactly what entity 26 should be unwound. For example, if \Var{unw\_local\_addr\_space} is 27 passed in \Var{as}, then \Var{arg} needs to be a pointer to a context 28 structure containing the machine-state of the initial stack frame. 29 However, other address-spaces may instead expect a process-id, a 30 thread-id, or a pointer to an arbitrary structure which identifies the 31 stack-frame chain to be unwound. In other words, the interpretation 32 of \Var{arg} is entirely dependent on the address-space in use; 33 \Prog{libunwind} never interprets the argument in any way on its own. 34 35 Note that \Func{unw\_init\_remote}() can be used to initiate unwinding 36 in \emph{any} process, including the local process in which the 37 unwinder itself is running. However, for local unwinding, it is 38 generally preferable to use \Func{unw\_init\_local}() instead, because 39 it is easier to use and because it may perform better. 40 41 \section{Return Value} 42 43 On successful completion, \Func{unw\_init\_remote}() returns 0. 44 Otherwise the negative value of one of the error-codes below is 45 returned. 46 47 \section{Thread and Signal Safety} 48 49 \Func{unw\_init\_remote}() is thread-safe. If the local address-space 50 is passed in argument \Var{as}, this routine is also safe to use from 51 a signal handler. 52 53 \section{Errors} 54 55 \begin{Description} 56 \item[\Const{UNW\_EINVAL}] \Func{unw\_init\_remote}() was called in a 57 version of \Prog{libunwind} which supports local unwinding only 58 (this normally happens when defining \Const{UNW\_LOCAL\_ONLY} before 59 including \File{$<$libunwind.h$>$} and then calling 60 \Func{unw\_init\_remote}()). 61 \item[\Const{UNW\_EUNSPEC}] An unspecified error occurred. 62 \item[\Const{UNW\_EBADREG}] A register needed by \Func{unw\_init\_remote}() 63 wasn't accessible. 64 \end{Description} 65 66 \section{See Also} 67 68 \SeeAlso{libunwind(3)}, \SeeAlso{unw\_create\_addr\_space(3)}, 69 \SeeAlso{unw\_init\_local(3)} 70 71 \section{Author} 72 73 \noindent 74 David Mosberger-Tang\\ 75 Email: \Email{dmosberger (a] gmail.com}\\ 76 WWW: \URL{http://www.nongnu.org/libunwind/}. 77 \LatexManEnd 78 79 \end{document} 80