Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Tree [10a4a5] release-2000-Feb release-1999-07-22 / sigsegv /
History



File Date Author Commit
autoconf 2000-02-18 cvs2hg cvs2hg [10a4a5] fixup commit for tag 'release-1999-07-22'
configurations 1999-06-16 haible haible [f1cedd] Configuration results.
COPYING 1999-06-21 haible haible [e39ee3] Whitespace fix.
ChangeLog 1999-06-21 haible haible [b91e8e] Fix a compilation error on Win32.
Makefile.devel 1999-05-18 haible haible [168a00] Libtoolify the sigsegv library.
Makefile.in 1999-05-31 haible haible [d08e63] New makefile interface between sigsegv and clisp.
Makefile.msvc 1999-02-11 haible haible [f88c49] Deal with Solaris 2.5.
NEWS 1999-05-15 haible haible [73680c] Avoid failures on DEC OSF/1 3.2 and Linux 2.0.x...
README 1999-05-03 haible haible [0a2dd5] Catch stack overflow on Unix.
config.h.in 1999-05-18 haible haible [c91efa] Fix for sigsegv module on Linux 2.0.x with glib...
configure 2000-02-18 cvs2hg cvs2hg [10a4a5] fixup commit for tag 'release-1999-07-22'
configure.in 1999-05-18 haible haible [168a00] Libtoolify the sigsegv library.
dispatcher.c 1999-03-16 haible haible [8b5c37] Tweaks for using a C++ compiler.
handler.c 1999-06-21 haible haible [b91e8e] Fix a compilation error on Win32.
sigsegv.h.in 1999-06-16 haible haible [19627a] More precise typedef, needed by spvw_sigsegv.d.
test1.c 1999-05-03 haible haible [0a2dd5] Catch stack overflow on Unix.
test2.c 1999-05-07 haible haible [1a3c8c] Avoid a check failure on OSF/1.
test3.c 1999-05-07 haible haible [ec8bef] More verbosity.

Read Me

SIGSEGV  -  Handling page faults in user mode

This is a library for handling page faults in user mode. A page fault
occurs when a program tries to access to a region of memory that is
currently not available. Catching and handling a page fault is a useful
technique for implementing:

  - pageable virtual memory,
  - memory-mapped access to persistent databases,
  - generational garbage collectors,
  - stack overflow handlers,
  - distributed shared memory,
  - ...

Pageable virtual memory is usually done in the operating system's kernel.
This library helps in implementing the others.

Installing a page fault handler is usually more efficient than doing
access checks in software at every access, because it's effectively the
hardware (the MMU) which checks whether a page is present or not.

Note that if you use system calls (like read()) to write into write-
protected pages, the system will react by returning -1 and setting
errno to EFAULT, instead of signalling SIGSEGV and restarting the system
call. In this case, the program has to do what the SIGSEGV handler would
do, and then restart the read() operation. Some buggy systems (SunOS 4)
go into an endless loop on this occasion; on these systems you have to
make sure that an area is writable _before_ you call read() on it,


Installation instructions on Unix:

        ./configure
        make
        make check
        make install

Installation instructions on Win32 with MS Visual C/C++ 4.0 or 5.0:

        nmake -f Makefile.msvc check


Copyright notice:

Copyright 1998-1999 Bruno Haible, <haible@clisp.cons.org>

This is free software distributed under the GNU General Public Licence
described in the file COPYING. Contact the author if you don't have this
or can't live with it. There is ABSOLUTELY NO WARRANTY, explicit or implied,
on this software.


Distribution:

ftp://ftp.santafe.edu/pub/gnu/sigsegv-1.1.tar.gz

Homepage:

http://clisp.cons.org/~haible/packages-sigsegv.html