Issue #12209: Minor edits to faulthandler doc. Patch written by Éric Araujo.

This commit is contained in:
Victor Stinner 2014-03-25 12:33:56 +01:00
parent 4908910ab7
commit 215ad66405

View File

@ -11,7 +11,7 @@ after a timeout, or on a user signal. Call :func:`faulthandler.enable` to
install fault handlers for the :const:`SIGSEGV`, :const:`SIGFPE`, install fault handlers for the :const:`SIGSEGV`, :const:`SIGFPE`,
:const:`SIGABRT`, :const:`SIGBUS`, and :const:`SIGILL` signals. You can also :const:`SIGABRT`, :const:`SIGBUS`, and :const:`SIGILL` signals. You can also
enable them at startup by setting the :envvar:`PYTHONFAULTHANDLER` environment enable them at startup by setting the :envvar:`PYTHONFAULTHANDLER` environment
variable or by using :option:`-X` ``faulthandler`` command line option. variable or by using the :option:`-X` ``faulthandler`` command line option.
The fault handler is compatible with system fault handlers like Apport or the The fault handler is compatible with system fault handlers like Apport or the
Windows fault handler. The module uses an alternative stack for signal handlers Windows fault handler. The module uses an alternative stack for signal handlers
@ -39,8 +39,8 @@ The module is implemented in C, so tracebacks can be dumped on a crash or when
Python is deadlocked. Python is deadlocked.
Dump the traceback Dumping the traceback
------------------ ---------------------
.. function:: dump_traceback(file=sys.stderr, all_threads=True) .. function:: dump_traceback(file=sys.stderr, all_threads=True)
@ -69,8 +69,8 @@ Fault handler state
Check if the fault handler is enabled. Check if the fault handler is enabled.
Dump the tracebacks after a timeout Dumping the tracebacks after a timeout
----------------------------------- --------------------------------------
.. function:: dump_traceback_later(timeout, repeat=False, file=sys.stderr, exit=False) .. function:: dump_traceback_later(timeout, repeat=False, file=sys.stderr, exit=False)
@ -90,8 +90,8 @@ Dump the tracebacks after a timeout
Cancel the last call to :func:`dump_traceback_later`. Cancel the last call to :func:`dump_traceback_later`.
Dump the traceback on a user signal Dumping the traceback on a user signal
----------------------------------- --------------------------------------
.. function:: register(signum, file=sys.stderr, all_threads=True, chain=False) .. function:: register(signum, file=sys.stderr, all_threads=True, chain=False)
@ -110,8 +110,8 @@ Dump the traceback on a user signal
Not available on Windows. Not available on Windows.
File descriptor issue Issue with file descriptors
--------------------- ---------------------------
:func:`enable`, :func:`dump_traceback_later` and :func:`register` keep the :func:`enable`, :func:`dump_traceback_later` and :func:`register` keep the
file descriptor of their *file* argument. If the file is closed and its file file descriptor of their *file* argument. If the file is closed and its file
@ -123,9 +123,15 @@ these functions again each time that the file is replaced.
Example Example
------- -------
Example of a segmentation fault on Linux: :: .. highlight:: sh
$ python -q -X faulthandler Example of a segmentation fault on Linux with and without enabling the fault
handler::
$ python3 -c "import ctypes; ctypes.string_at(0)"
Segmentation fault
$ python3 -q -X faulthandler
>>> import ctypes >>> import ctypes
>>> ctypes.string_at(0) >>> ctypes.string_at(0)
Fatal Python error: Segmentation fault Fatal Python error: Segmentation fault