2 .\" Manual page created with latex2man on Thu Aug 16 09:44:45 MDT 2007
3 .\" NOTE: This file is generated, DO NOT EDIT.
13 .TH "UNW\\_RESUME" "3" "16 August 2007" "Programming Library " "Programming Library "
16 \-\- resume execution in a particular stack frame
21 #include <libunwind.h>
25 unw_resume(unw_cursor_t *cp);
32 routine resumes execution at the stack frame
34 The behavior of this routine differs
35 slightly for local and remote unwinding.
37 For local unwinding, unw_resume()
38 restores the machine state
39 and then directly resumes execution in the target stack frame. Thus
41 does not return in this case. Restoring the
42 machine state normally involves restoring the ``preserved\&''
43 (callee\-saved) registers. However, if execution in any of the stack
44 frames younger (more deeply nested) than the one identified by
46 was interrupted by a signal, then unw_resume()
48 restore all registers as well as the signal mask. Attempting to call
50 on a cursor which identifies the stack frame of
51 another thread results in undefined behavior (e.g., the program may
54 For remote unwinding, unw_resume()
55 installs the machine state
56 identified by the cursor by calling the access_reg
59 accessor callbacks as needed. Once that is
60 accomplished, the resume
61 accessor callback is invoked. The
63 routine then returns normally (that is, unlikely
64 for local unwinding, unw_resume
65 will always return for remote
68 Most platforms reserve some registers to pass arguments to exception
69 handlers (e.g., IA\-64 uses r15\-r18
71 purpose). These registers are normally treated like ``scratch\&''
72 registers. However, if libunwind
73 is used to set an exception
74 argument register to a particular value (e.g., via
78 value as the contents of the register. In other words, the exception
79 handling arguments are installed even in cases where normally only the
80 ``preserved\&'' registers are restored.
82 Note that unw_resume()
85 handlers (aka, ``personality routines\&''). If a program needs this, it
86 will have to do so on its own by obtaining the unw_proc_info_t
87 of each unwound frame and appropriately processing its unwind handler
88 and language\-specific data area (lsda). These steps are generally
89 dependent on the target\-platform and are regulated by the
90 processor\-specific ABI (application\-binary interface).
95 For local unwinding, unw_resume()
96 does not return on success.
97 For remote unwinding, it returns 0 on success. On failure, the
98 negative value of one of the errors below is returned.
100 .SH THREAD AND SIGNAL SAFETY
104 is thread\-safe. If cursor cp
106 local address\-space, this routine is also safe to use from a signal
114 An unspecified error occurred.
117 A register needed by unw_resume()
122 The instruction pointer identified by
127 The stack frame identified by
141 David Mosberger\-Tang
143 Email: \fBdmosberger@gmail.com\fP
145 WWW: \fBhttp://www.nongnu.org/libunwind/\fP\&.
146 .\" NOTE: This file is generated, DO NOT EDIT.