'\" t
.\" Manual page created with latex2man on Thu Aug 16 09:44:45 MDT 2007
.\" NOTE: This file is generated, DO NOT EDIT.
.de Vb
.ft CW
.nf
..
.de Ve
.ft R

.fi
..
.TH "UNW\\_INIT\\_REMOTE" "3" "16 August 2007" "Programming Library " "Programming Library "
.SH NAME
unw_init_remote
\-\- initialize cursor for remote unwinding 
.PP
.SH SYNOPSIS

.PP
#include <libunwind.h>
.br
.PP
int
unw_init_remote(unw_cursor_t *c,
unw_addr_space_t as,
void *arg);
.br
.PP
.SH DESCRIPTION

.PP
The unw_init_remote()
routine initializes the unwind cursor 
pointed to by c
for unwinding in the address space identified by 
as\&.
The as
argument can either be set to 
unw_local_addr_space
(local address space) or to an arbitrary 
address space created with unw_create_addr_space().
.PP
The arg
void\-pointer tells the address space exactly what entity 
should be unwound. For example, if unw_local_addr_space
is 
passed in as,
then 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 arg
is entirely dependent on the address\-space in use; 
libunwind
never interprets the argument in any way on its own. 
.PP
Note that unw_init_remote()
can be used to initiate unwinding 
in \fIany\fP
process, including the local process in which the 
unwinder itself is running. However, for local unwinding, it is 
generally preferable to use unw_init_local()
instead, because 
it is easier to use and because it may perform better. 
.PP
.SH RETURN VALUE

.PP
On successful completion, unw_init_remote()
returns 0. 
Otherwise the negative value of one of the error\-codes below is 
returned. 
.PP
.SH THREAD AND SIGNAL SAFETY

.PP
unw_init_remote()
is thread\-safe. If the local address\-space 
is passed in argument as,
this routine is also safe to use from 
a signal handler. 
.PP
.SH ERRORS

.PP
.TP
UNW_EINVAL
 unw_init_remote()
was called in a 
version of libunwind
which supports local unwinding only 
(this normally happens when defining UNW_LOCAL_ONLY
before 
including <libunwind.h>
and then calling 
unw_init_remote()).
.TP
UNW_EUNSPEC
 An unspecified error occurred. 
.TP
UNW_EBADREG
 A register needed by unw_init_remote()
wasn\&'t accessible. 
.PP
.SH SEE ALSO

.PP
libunwind(3),
unw_create_addr_space(3),
unw_init_local(3)
.PP
.SH AUTHOR

.PP
David Mosberger\-Tang
.br
Email: \fBdmosberger@gmail.com\fP
.br
WWW: \fBhttp://www.nongnu.org/libunwind/\fP\&.
.\" NOTE: This file is generated, DO NOT EDIT.
