2 .\" Manual page created with latex2man on Thu Aug 16 09:44:44 MDT 2007
3 .\" NOTE: This file is generated, DO NOT EDIT.
13 .TH "LIBUNWIND\-SETJMP" "3" "16 August 2007" "Programming Library " "Programming Library "
16 \-\- libunwind\-based non\-local gotos
39 sigsetjmp(sigjmp_buf env,
43 siglongjmp(sigjmp_buf env,
51 library offers a libunwind\-based
52 implementation of non\-local gotos. This implementation is intended to
53 be a drop\-in replacement for the normal, system\-provided routines of
54 the same name. The main advantage of using the unwind\-setjmp
55 library is that setting up a non\-local goto via one of the
57 routines is very fast. Typically, just 2 or 3 words
58 need to be saved in the jump\-buffer (plus one call to
60 in the case of sigsetjmp).
62 other hand, executing a non\-local goto by calling one of the
64 routines tends to be much slower than with the
65 system\-provided routines. In fact, the time spent on a
67 will be proportional to the number of call frames
68 that exist between the points where setjmp()
71 were called. For this reason, the
73 library is beneficial primarily in applications
74 that frequently call setjmp()
83 The correct operation of this library depends on the presence of
84 correct unwind information. On newer platforms, this is rarely an
85 issue. On older platforms, care needs to be taken to
86 ensure that each of the functions whose stack frames may have to be
87 unwound during a longjmp()
88 have correct unwind information
89 (on those platforms, there is usually a compiler\-switch, such as
90 \fB\-funwind\-tables\fP,
91 to request the generation of unwind
95 The contents of jmp_buf and sigjmp_buf as setup
96 and used by these routines is completely different from the ones
97 used by the system\-provided routines. Thus, a jump\-buffer created
98 by the libunwind\-based setjmp()/_setjmp
100 used in a call to the libunwind\-based
101 longjmp()/_longjmp().
102 The analogous applies for
111 \fB\-l\fPunwind\-setjmp
112 The library an application should
113 be linked against to ensure it uses the libunwind\-based non\-local
120 setjmp(3), longjmp(3),
121 _setjmp(3), _longjmp(3),
122 sigsetjmp(3), siglongjmp(3)
127 David Mosberger\-Tang
129 Email: \fBdmosberger@gmail.com\fP
131 WWW: \fBhttp://www.nongnu.org/libunwind/\fP\&.
132 .\" NOTE: This file is generated, DO NOT EDIT.