| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
Issue #26558.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue #26154: Add a new private _PyThreadState_UncheckedGet() function which
gets the current thread state, but don't call Py_FatalError() if it is NULL.
Python 3.5.1 removed the _PyThreadState_Current symbol from the Python C API to
no more expose complex and private atomic types. Atomic types depends on the
compiler or can even depend on compiler options. The new function
_PyThreadState_UncheckedGet() allows to get the variable value without having
to care of the exact implementation of atomic types.
Changes:
* Replace direct usage of the _PyThreadState_Current variable with a call to
_PyThreadState_UncheckedGet().
* In pystate.c, replace direct usage of the _PyThreadState_Current variable
with the PyThreadState_GET() macro for readability.
* Document also PyThreadState_Get() in pystate.h
|
|
|
|
| |
macro Py_SETREF.
|
|\
| |
| |
| |
| | |
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
|
| |
| |
| |
| |
| | |
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
to its signal handlers.
Use also _Py_write_noraise() instead of write() to retry write() if it is
interrupted by a signal (fail with EINTR).
faulthandler.dump_traceback() also calls PyErr_CheckSignals() to call the
Python signal handler if a signal was received.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
Issue #23654: Turn off ICC's tail call optimization for the stack_overflow
generator. ICC turns the recursive tail call into a loop.
Patch written by Matt Frank.
|
| |
| |
| |
| | |
functions of faulthandler now accept file descriptors. Patch by Wei Wu.
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Fix undefined behaviour: don't compare pointers. Use Py_uintptr_t type instead
of void*. It fixes test_faulthandler on Fedora 22 which now uses GCC 5.
|
|\ \
| |/
| |
| |
| |
| |
| | |
_read_null(), because _read_null() cannot be used on AIX. On AIX, reading from
NULL is allowed: the first page of memory is a mapped read-only on AIX.
_read_null() and _sigabrt() don't accept parameters.
|
| |
| |
| |
| |
| | |
because _read_null() cannot be used on AIX. On AIX, reading from NULL is
allowed: the first page of memory is a mapped read-only on AIX.
|
| | |
|
| |
| |
| |
| | |
crash.
|
|/
|
|
|
|
|
|
| |
- Use _testcapi.raise_signal() in test_signal
- close also os.pipe() file descriptors in some test_signal tests where they
were not closed properly
- Remove faulthandler._sigill() and faulthandler._sigbus(): reuse
_testcapi.raise_signal() in test_faulthandler
|
|
|
|
|
| |
None: RuntimeError("sys.stderr is None") instead of AttributeError("'NoneType'
object has no attribute 'fileno'").
|
|\ |
|
| |
| |
| |
| | |
Report and patch by Vajrasky Kok.
|
| |
| |
| |
| |
| |
| |
| | |
are used.
Move also _Py_IDENTIFIER() defintions to the top in modified files to remove
identifiers duplicated in the same file.
|
| |
| |
| |
| |
| |
| |
| | |
instead of creating temporary Unicode string objects
Add also more identifiers in pythonrun.c to avoid temporary Unicode string
objets for the interactive interpreter.
|
| |
| |
| |
| |
| | |
faulthandler module if the variable is non-empty. Same behaviour than other
variables like PYTHONDONTWRITEBYTECODE.
|
| |
| |
| |
| |
| | |
Replace strdup() with _PyMem_RawStrdup() or _PyMem_Strdup(), depending if the
GIL is held or not.
|
|\ \
| |/
| |
| |
| | |
handler when the function is called twice, so faulthandler.unregister()
restores correctly the original signal handler.
|
| |
| |
| |
| |
| | |
when the function is called twice, so faulthandler.unregister() restores
correctly the original signal handler.
|
| | |
|
|/ |
|
|
|
|
| |
module.
|
|
|
|
| |
Restore the errno before calling the previous signal handler, and not after.
|
|
|
|
|
| |
Don't exit the tstate is NULL to restore the errno and chain the signal handler
if needed.
|
| |
|
|
|
|
| |
Clang 3.0 removes "y = *x;" instruction if the optimisation level is 3.
|
| |
|
| |
|
|
|
|
| |
Thanks to Konrad Schöbel and Jasper Schulz for helping with the mass-editing.
|
| |
|
|
|
|
| |
memory watchdog for timely stats collection.
|
| |
|
|
|
|
| |
instead of void*
|
|
|
|
| |
Call the previous signal handler if chain is True.
|
| |
|
|
|
|
| |
Warnings found by the the Clang Static Analyzer.
|
| |
|
|
|
|
| |
Patch written by Éric Araujo.
|
|
|
|
|
| |
Use _set_abort_behavior() + abort() instead of raise(SIGABRT) which may write
an error message and/or open a popup asking to report the fault.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Set the default value of all_threads arguments to True
* Py_FatalError() dumps all threads, instead of only the current thread
Dump only the current thread is not reliable. In some cases, Python is unable
to retrieve the state of the current thread and so is unable to dump the
traceback. faulthandler keeps a reference to the interpreter and so is always
able to dump the traceback of all threads.
|