1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-06-02 01:12:37 +02:00
libunwind-eh_elf/doc/unw_resume.man
mostang.com!davidm b49a5f35e1 Regenerate.
(Logical change 1.52)
2003-02-21 07:36:26 +00:00

118 lines
2.7 KiB
Groff

'\" t
.\" Manual page created with latex2man on Thu Feb 20 23:26:18 PST 2003
.\" NOTE: This file is generated, DO NOT EDIT.
.de Vb
.ft CW
.nf
..
.de Ve
.ft R
.fi
..
.TH "UNW\\_RESUME" "3" "20 February 2003" "Programming Library " "Programming Library "
.SH NAME
.PP
unw_resume \-\- resume execution in a particular stack frame
.PP
.SH SYNOPSIS
.PP
#include <libunwind.h>
.br
.PP
int
unw_resume(unw_cursor_t *cursor);
.br
.PP
.SH DESCRIPTION
.PP
The unw_resume()
routine resumes execution at the stack frame
identified by cursor\&.
Normally, this is accomplished by
restoring the ``preserved\&'' (callee\-saved) machine state. However, if
execution in any of the stack frames younger (more deeply nested) than
the one identified by cursor
was interrupted by a signal, then
unw_resume()
will restore the entire machine state, including
the ``preserved\&'' and ``scratch\&'' (caller\-saved) registers, as well as
the signal mask.
.PP
Most platforms reserve some registers to pass arguments to exception
handlers (e.g., IA\-64 uses r15\-r18
for this
purpose). These registers are normally treated like ``scratch\&''
registers. However, if libunwind
is used to define an
exception argument register, e.g., by calling unw_set_reg(),
then unw_resume()
will always install the new value as the
contents of that register. In other words, the exception handling
arguments are installed even in cases where normally only the
``preserved\&'' registers are restored.
.PP
Note that unw_resume()
does \fInot\fP
invoke any unwind
handlers (aka, ``personality routines\&''). If a program needs this, it
will have to do so on its own by obtaining the unw_proc_info_t
of each unwound frame and appropriately processing its unwind handler
and language\-specific data area (lsda). These steps are generally
dependent on the target\-platform and are regulated by the
processor\-specific ABI (application\-binary interface).
.PP
.SH RETURN VALUE
.PP
For local unwinding, unw_resume()
does not return on success.
For remote unwinding, it returns 0 on success. On failure, the
negative value of one of the errors below is returned.
.PP
.SH ERRORS
.PP
.TP
UNW_EUNSPEC
An unspecified error occurred.
.TP
UNW_EBADREG
A register needed by unw_resume()
wasn\&'t
accessible.
.TP
UNW_EINVALIDIP
The instruction pointer identified by
cursor
is not valid.
.TP
UNW_BADFRAME
The stack frame identified by
cursor
is not valid.
.PP
.SH SEE ALSO
.PP
libunwind(3),
unw_set_reg(3),
sigprocmask(2)
.PP
.SH AUTHOR
.PP
David Mosberger\-Tang
.br
Hewlett\-Packard Labs
.br
Palo\-Alto, CA 94304
.br
Email: \fBdavidm@hpl.hp.com\fP
.br
WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&.
.\" NOTE: This file is generated, DO NOT EDIT.