libunwind-setjmp man page on SuSE

Man page or keyword search:  
man Server   14857 pages
apropos Keyword Search (all sections)
Output format
SuSE logo
[printable version]

LIBUNWIND-SETJMP(3)	     Programming Library	   LIBUNWIND-SETJMP(3)

NAME
       libunwind-setjmp -- libunwind-based non-local gotos

SYNOPSIS
       #include <setjmp.h>

       int setjmp(jmp_buf env);
       void longjmp(jmp_buf env, int val);
       int _setjmp(jmp_buf env);
       void _longjmp(jmp_buf env, int val);
       int setjmp(sigjmp_buf env, int savemask);
       void siglongjmp(sigjmp_buf env, int val);

DESCRIPTION
       The  unwind-setjmp  library  offers a libunwind-based implementation of
       non-local gotos. This  implementation  is  intended  to	be  a  drop-in
       replacement  for the normal, system-provided routines of the same name.
       The main advantage of using the unwind-setjmp library is	 that  setting
       up a non-local goto via one of the setjmp() routines is very fast. Typ‐
       ically, just 2 or 3 words need to be saved in the jump-buffer (plus one
       call  to sigprocmask(2), in the case of sigsetjmp).  On the other hand,
       executing a non-local goto by calling one  of  the  longjmp()  routines
       tends  to  be  much  slower  than with the system-provided routines. In
       fact, the time spent on a longjmp() will be proportional to the	number
       of  call	 frames	 that  exist  between  the  points  where setjmp() and
       longjmp() were called. For this reason, the  unwind-setjmp  library  is
       beneficial  primarily in applications that frequently call setjmp() but
       only rarely call longjmp().

CAVEATS
       *      The correct operation of this library depends on the presence of
	      correct  unwind  information. On newer platforms, this is rarely
	      an issue. On older platforms, care needs to be taken  to	ensure
	      that  each  of  the  functions whose stack frames may have to be
	      unwound during a longjmp() have correct unwind  information  (on
	      those  platforms,	 there	is  usually a compiler-switch, such as
	      -funwind-tables, to request the generation  of  unwind  informa‐
	      tion).

       *      The  contents  of	 jmp_buf  and  sigjmp_buf as setup and used by
	      these routines is completely different from the ones used by the
	      system-provided  routines.  Thus,	 a  jump-buffer created by the
	      libunwind-based setjmp()/_setjmp may only be used in a  call  to
	      the libunwind-based longjmp()/_longjmp().	 The analogous applies
	      for sigjmp_buf with sigsetjmp() and siglongjmp().

FILES
       -lunwind-setjmp
	       The library an application should be linked against  to	ensure
	      it uses the libunwind-based non-local goto routines.

SEE ALSO
       libunwind(3),	setjmp(3),    longjmp(3),   _setjmp(3),	  _longjmp(3),
       sigsetjmp(3), siglongjmp(3)

AUTHOR
       David Mosberger-Tang
       Hewlett-Packard Labs
       Palo-Alto, CA 94304
       Email: davidm@hpl.hp.com
       WWW: http://www.hpl.hp.com/research/linux/libunwind/.

Programming Library		05 August 2004		   LIBUNWIND-SETJMP(3)
[top]

List of man pages available for SuSE

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net