Fault handler for Python: display the Python backtrace on SIGSEGV, SIGFPE, SIGABRT, SIGBUS and SIGILL signals
Python C Shell
Latest commit c8a0dbc Jun 6, 2016 @haypo Merge pull request #23 from adamchainz/readthedocs.io
Convert readthedocs links for their .org -> .io migration for hosted projects
Failed to load latest commit information.
doc Convert readthedocs links for their .org -> .io migration for hosted … Jun 5, 2016
.gitignore ignore more generated files Mar 3, 2015
AUTHORS Added Giuseppe Corbelli as contributor for thread name printout on Linux May 29, 2015
MANIFEST.in Add support for the ``PYTHONFAULTHANDLER`` environment variable. Apr 19, 2015
README Convert readthedocs links for their .org -> .io migration for hosted … Jun 5, 2016
TODO sync with cpython; set version to 2.0 Apr 8, 2011
faulthandler.c Added support for file descriptors May 28, 2015
faulthandler.pth Generate the .pth file from something readable. Run `setup.py genpth`… Apr 19, 2015
release.py Add release.py Apr 19, 2015
releaser.conf Add releaser.conf May 28, 2015
setup.py Convert readthedocs links for their .org -> .io migration for hosted … Jun 5, 2016
tests.py [tests.py] Couple of unit tests for thread name and updated other tes… May 29, 2015
tox.ini Drop Python 2.5 and 3.1 support; update changelog Feb 11, 2015


Fault handler

Fault handler for SIGSEGV, SIGFPE, SIGABRT, SIGBUS and SIGILL signals: display
the Python traceback and restore the previous handler. Allocate an alternate
stack for this handler, if sigaltstack() is available, to be able to allocate
memory on the stack, even on stack overflow (not available on Windows).

Import the module and call faulthandler.enable() to enable the fault handler.

Alternatively you can set the PYTHONFAULTHANDLER environment variable to a
non-empty value.

The fault handler is called on catastrophic cases and so it can only use
signal-safe functions (eg. it doesn't allocate memory on the heap). That's why
the traceback is limited: it only supports ASCII encoding (use the
backslashreplace error handler for non-ASCII characters) and limits each string
to 100 characters, doesn't print the source code in the traceback (only the
filename, the function name and the line number), is limited to 100 frames and
100 threads.

By default, the Python traceback is written to the standard error stream. Start
your graphical applications in a terminal and run your server in foreground to
see the traceback, or pass a file to faulthandler.enable().

faulthandler is implemented in C using signal handlers to be able to dump a
traceback on a crash or when Python is blocked (eg. deadlock).


faulthandler is part of Python since Python 3.3: