?????????? ????????? - ??????????????? - /home/agenciai/public_html/cd38d8/libsigsegv.zip
???????
PK ��!\L���� � NEWSnu �[��� New in 2.13: * Added support for macOS/arm64. * Added support for Solaris OpenIndiana. * Added support for catching stack overflow on Solaris 11/SPARC. * Added support for catching stack overflow on 64-bit Haiku. * Provide a correct value for SIGSTKSZ on 64-bit Solaris/x86. The one defined by this system is too small. * Improved support for Linux/RISC-V, Linux/nds32. * Improved support for Android. * Improved support for FreeBSD/x86, FreeBSD/x86_64, FreeBSD/arm, FreeBSD/arm64. * Improved support for 64-bit ABI on Solaris/x86_64. New in 2.12: * Added support for catching stack overflow on Hurd/i386. * Added support for catching stack overflow on Haiku. * Corrected distinction between stack overflow and other fault on AIX. * Reliability improvements on Linux, FreeBSD, NetBSD. * NOTE: Support for Cygwin and native Windows is currently not up-to-date. New in 2.11: * Added support for catching stack overflow on Linux/SPARC. * Provide a correct value for SIGSTKSZ on 64-bit AIX and on HP-UX. The one defined by these systems is too small. * Updated build infrastructure. * Compilation now requires the <stdint.h> include file. Platforms which don't have this include file (such as IRIX) are no longer supported. * NOTE: Support for Cygwin and native Windows is currently not up-to-date. New in 2.10: * Support for Linux/S390. <sigsegv.h> now defines a macro SIGSEGV_FAULT_ADDRESS_ALIGNMENT. It is either 1 or pagesize. Its meaning is that - The fault address passed to a SIGSEGV handler has been rounded down to a multiple of SIGSEGV_FAULT_ADDRESS_ALIGNMENT. - The address and length arguments of sigsegv_register function calls must be multiples of SIGSEGV_FAULT_ADDRESS_ALIGNMENT. * Faster distinction between stack overflow and other fault on OpenBSD. New in 2.9: * Correct support for 64-bit ABI on MacOS X 10.5 and newer. * Fix alternate stack overflow on at least Linux for PowerPC64; regression introduced in 2.6. New in 2.8: * Support for Cygwin 1.7. Improved support for Cygwin 1.5. Contributed by Eric Blake. New in 2.7: * Support for platforms that follow POSIX:2008, not POSIX:2001. * Support for MirBSD 10. * Support for IRIX 5.3. Contributed by Eric Blake. * On Linux platforms, libsigsegv now prefers the POSIX way of defining the signal handler over than the traditional one, when both are supported. As a consequence, on Linux/i386 and other Linux platforms, the type 'stackoverflow_context_t' is now typedefed to 'ucontext_t *' rather than 'struct sigcontext *'. New in 2.6: * sigsegv_leave_handler is changed. Previously it was a normal function with no arguments. Now it is a function that take a non-returning continuation function and three arguments for it as arguments. Where you had code like int my_handler(void* fault_address, int serious) { ...code_before()...; sigsegv_leave_handler(); ...code_after()...; longjmp(...); } you now have to write void my_handler_tail(void* arg1, void* arg2, void* arg3) { ...code_after()...; longjmp(...); } int my_handler(void* fault_address, int serious) { ...code_before()...; #if LIBSIGSEGV_VERSION >= 0x0206 return sigsegv_leave_handler(my_handler_tail, arg, NULL, NULL); #else sigsegv_leave_handler(); my_handler_tail(arg, NULL, NULL); /* NOTREACHED */ abort(); #endif } * sigsegv_leave_handler now works correctly on MacOS X. * Support for 64-bit ABI on MacOS X 10.5. * Support for building universal binaries on MacOS X. * Improved distinction between stack overflow and other fault on NetBSD, OpenBSD, FreeBSD, Linux, AIX, Solaris. Contributed by Eric Blake. * GNU gnulib now has an autoconf macro for locating libsigsegv: https://www.gnu.org/software/gnulib/MODULES.html#module=libsigsegv New in 2.5: * Support for MacOS X 10.5. New in 2.4: * Support for GCC 4 on more platforms. * Added support for catching stack overflow on NetBSD. * Improved support for catching stack overflow on Linux, Solaris: Works also when /proc is not mounted or lacks read permissions. New in 2.3: * Support for GCC 4 on some platforms contributed by Paolo Bonzini. * Support for MacOS X i386 contributed by Bruno Haible. * Improved support for Woe32 contributed by Doug Currie. New in 2.2: * Support for new versions of MacOS X contributed by Paolo Bonzini. * Improved support for AIX 5, contributed by Bruno Haible. New in 2.1: * Support for MacOS X contributed by Paolo Bonzini. * Support for Cygwin contributed by Paolo Bonzini. * Support for Linux/ia64 and Linux/hppa contributed by Bruno Haible. * Support for OpenBSD/i386 contributed by Bruno Haible. * Support for NetBSD/alpha contributed by Paolo Bonzini. New in 2.0: * Modernized infrastructure. * Added support for catching stack overflow on AIX 4, HP-UX, and BeOS. * Dropped support for NeXTstep. * The function sigsegv_leave_handler() no longer restores the signal mask. This must now be done by the calling handler (either through sigprocmask or through siglongjmp). New in 1.2: * Support for HP-UX contributed by Paolo Bonzini. New in 1.1: * Catching stack overflow now works on some Unix systems: - Linux 2.2.x with glibc-2.1, - Sun Solaris, - DEC OSF/1 4.0, - SGI Irix. PK ��!\e�� � AUTHORSnu �[��� Authors of GNU libsigsegv. Bruno Haible <bruno@clisp.org> Versions 1.0 and 2.0 Paolo Bonzini <bonzini@gnu.org> HP-UX, MacOS X, Cygwin support Eric Blake <eblake@redhat.com> Cygwin support PK ��!\��l� � READMEnu �[��� GNU libsigsegv - 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, - ... This library supports three sets of functions, all defined in <sigsegv.h>: - Global SIGSEGV handlers: sigsegv_install_handler, sigsegv_deinstall_handler. - Local SIGSEGV handlers (a handler per memory area): sigsegv_init, sigsegv_register, sigsegv_unregister, sigsegv_dispatch. - Stack overflow handlers: stackoverflow_install_handler, stackoverflow_deinstall_handler. Each of the three APIs can be used independently or simultaneously. For examples of the use of the APIs, see: - Global SIGSEGV handlers: see tests/sigsegv1.c. - Local SIGSEGV handlers: see tests/sigsegv2.c. - Stack overflow handlers: see tests/stackoverflow1.c. About portability. Some platforms don't support this functionality. In <sigsegv.h>, the preprocessor macro HAVE_SIGSEGV_RECOVERY will be defined if global and local SIGSEGV handlers are available, and the preprocessor macro HAVE_STACK_OVERFLOW_RECOVERY will be defined if stack overflow handlers are available. Note that the declared functions are available in all cases; on platforms where HAVE_SIGSEGV_RECOVERY or HAVE_STACK_OVERFLOW_RECOVERY is not defined, they will simply always return an error code or do nothing. The list of platforms where this library is known to work is contained in the file PORTING. About pageable virtual 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, About stack overflow handlers. In some applications, the stack overflow handler performs some cleanup or notifies the user and then immediately terminates the application. In other applications, the stack overflow handler longjmps back to a central point in the application. This library supports both uses. In the second case, the handler must ensure to restore the normal signal mask (because many signals are blocked while the handler is executed), and must also call sigsegv_leave_handler() to transfer control; then only it can longjmp away. Note that longjmping back to a central point in the application can leave the application in an inconsistent state, because 1) no cleanup is executed for call frames that are being unwound, 2) the code being executed while the stack overflow occurred might leave data structures in an intermediate, inconsistent state. If you want to avoid the first problem, you need to restructure your application into three or more threads: - a main thread, which creates the other threads, - worker threads, which may cause stack overflows, and in which all cleanups are registered through the pthread_cleanup_push function, - a handler thread, which contains the handler for stack overflow and other kinds of SIGSEGV. The handler will call pthread_cancel on the worker thread whose stack overflowed. You will need to use the function pthread_sigmask on all threads except the handler thread, in order to ensure that the SIGSEGV signal gets handled in the designated handler thread. If you want to avoid the second problem together with the first problem, you need to enclose code that manipulates data structures in a way that is not safe to be interrupted within calls to pthread_setcancelstate() or pthread_setcanceltype(). If you want to avoid just the second problem, you need to manipulate all data structures in a way that is safe to be interrupted at any moment and also compile your program with the gcc flag -fnon-call-exceptions. About shared libraries. This library builds as a static library by default. This seems useful because of the small size of the library (4 KB). Of course, you can build it as a shared library by specifying the configure option '--enable-shared'. Installation ------------ Installation instructions on Unix: ./configure [OPTIONS] make make check make install Installation instructions on Microsoft Windows: See INSTALL.windows. Using libsigsegv in your package: - For the APIs, see the comments in the <sigsegv.h> file (generated from src/sigsegv.h.in). - An autoconf macro for determining where libsigsegv is installed and how to link with it is part of GNU gnulib, see <https://www.gnu.org/software/gnulib/MODULES.html#module=libsigsegv> Copyright notice ---------------- Copyright 1998-1999, 2002-2012, 2016-2021 Bruno Haible <bruno@clisp.org> Copyright 2002-2005, 2009 Paolo Bonzini <bonzini@gnu.org> Copyright 2008-2010 Eric Blake <ebb9@byu.net> Copyright 2002-2021 Free Software Foundation, Inc. This is free software distributed under the GNU General Public Licence v2 described in the file COPYING or (at your option) any later version. There is ABSOLUTELY NO WARRANTY, explicit or implied, on this software. Download -------- https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.13.tar.gz Homepage -------- https://www.gnu.org/software/libsigsegv/ https://savannah.gnu.org/projects/libsigsegv http://libsigsegv.sourceforge.net/ (old) Bug reports ----------- Report bugs - in the bug tracker at <https://savannah.gnu.org/projects/libsigsegv> - or by email to <bug-libsigsegv@gnu.org>. PK ��!\L���� � NEWSnu �[��� PK ��!\e�� � , AUTHORSnu �[��� PK ��!\��l� � U READMEnu �[��� PK � =/
| ver. 1.6 |
Github
|
.
| PHP 8.2.30 | ??????????? ?????????: 0 |
proxy
|
phpinfo
|
???????????