Victor Stinner
bfd316e750
Add _PyThreadState_UncheckedGet()
...
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
2016-01-20 11:12:38 +01:00
Serhiy Storchaka
5a57ade58e
Issue #20440 : Massive replacing unsafe attribute setting code with special
...
macro Py_SETREF.
2015-12-24 10:35:59 +02:00
Serhiy Storchaka
ac5569b1fa
Issue #24115 : Update uses of PyObject_IsTrue(), PyObject_Not(),
...
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:48:19 +03:00
Serhiy Storchaka
fa494fd883
Issue #24115 : Update uses of PyObject_IsTrue(), PyObject_Not(),
...
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:45:22 +03:00
Victor Stinner
c7489a5595
Issue #23836 : Fix the faulthandler module to handle reentrant calls
...
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.
2015-04-01 18:48:58 +02:00
Victor Stinner
d1f3a002c3
Merge 3.4 (faulthandler ICC)
2015-03-23 21:21:00 +01:00
Victor Stinner
19276f184f
Issue #23654 : Fix faulthandler._stack_overflow() for the Intel C Compiler (ICC)
...
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.
2015-03-23 21:20:27 +01:00
Victor Stinner
95bb714ff7
Issue #23566 : enable(), register(), dump_traceback() and dump_traceback_later()
...
functions of faulthandler now accept file descriptors. Patch by Wei Wu.
2015-03-12 15:32:03 +01:00
Serhiy Storchaka
53fa8b2a4b
Fixed few compiler warnings.
2015-02-16 09:40:12 +02:00
Victor Stinner
385efb4d99
Merge 3.4 (faulthandler)
2015-02-11 14:23:46 +01:00
Victor Stinner
7a5567a92c
Issue #23433 : Fix faulthandler._stack_overflow()
...
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.
2015-02-11 14:23:35 +01:00
Victor Stinner
6b8e0ed562
(Merge 3.4) faulthandler: test_gil_released() now uses _sigsegv() instead of
...
_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.
2014-09-30 13:55:30 +02:00
Victor Stinner
5083828d65
faulthandler: test_gil_released() now uses _sigsegv() instead of _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.
2014-09-30 13:54:14 +02:00
Victor Stinner
9db521c4a8
faulthandler: _sigsegv() and _sigabrt() don't accept parameters
2014-09-30 13:49:09 +02:00
Victor Stinner
7a39912dda
faulthandler: suppress crash reporter directly in test functions written to
...
crash.
2014-09-30 13:40:12 +02:00
Victor Stinner
56e8c29a4e
Issue #22018 : Add _testcapi.raise_signal()
...
- 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
2014-07-21 12:30:22 +02:00
Victor Stinner
e2d66903e8
Issue #21497 : faulthandler functions now raise a better error if sys.stderr is
...
None: RuntimeError("sys.stderr is None") instead of AttributeError("'NoneType'
object has no attribute 'fileno'").
2014-05-14 17:15:50 +02:00
R David Murray
3c2a178af2
Merge: #19970 : Fix some comment typos.
2013-12-13 20:53:26 -05:00
R David Murray
fc06999e0b
#19970 : Fix some comment typos.
...
Report and patch by Vajrasky Kok.
2013-12-13 20:52:19 -05:00
Victor Stinner
bd303c165b
Issue #19512 , #19515 : remove shared identifiers, move identifiers where they
...
are used.
Move also _Py_IDENTIFIER() defintions to the top in modified files to remove
identifiers duplicated in the same file.
2013-11-07 23:07:29 +01:00
Victor Stinner
090543736f
Issue #19512 : add some common identifiers to only create common strings once,
...
instead of creating temporary Unicode string objects
Add also more identifiers in pythonrun.c to avoid temporary Unicode string
objets for the interactive interpreter.
2013-11-06 22:41:44 +01:00
Victor Stinner
8898350076
Close #18957 : The PYTHONFAULTHANDLER environment variable now only enables the
...
faulthandler module if the variable is non-empty. Same behaviour than other
variables like PYTHONDONTWRITEBYTECODE.
2013-09-08 11:36:23 +02:00
Victor Stinner
49fc8ece81
Issue #18203 : Add _PyMem_RawStrdup() and _PyMem_Strdup()
...
Replace strdup() with _PyMem_RawStrdup() or _PyMem_Strdup(), depending if the
GIL is held or not.
2013-07-07 23:30:24 +02:00
Victor Stinner
0857ab4c77
(Merge 3.3) Issue #18343 : faulthandler.register() now keeps the previous signal
...
handler when the function is called twice, so faulthandler.unregister()
restores correctly the original signal handler.
2013-07-02 00:17:14 +02:00
Victor Stinner
8d3795474e
Issue #18343 : faulthandler.register() now keeps the previous signal handler
...
when the function is called twice, so faulthandler.unregister() restores
correctly the original signal handler.
2013-07-02 00:14:56 +02:00
Victor Stinner
56cb12542d
Issue #9566 : Explicit downcast to fix compiler warnings on Win64
2012-10-31 00:33:57 +01:00
Jesus Cea
14c81aba50
#16135 : Removal of OS/2 support (Modules/*)
2012-10-05 02:11:36 +02:00
Georg Brandl
deb92b5b1b
Closes #15969 : rename new API to have consistent names in the faulthandler module.
2012-09-22 08:58:55 +02:00
Victor Stinner
3cc635dabb
faulthandler: fix the handler of user signals
...
Restore the errno before calling the previous signal handler, and not after.
2012-08-09 02:43:41 +02:00
Victor Stinner
98a387b65f
Fix the user signal handler of faulthandler
...
Don't exit the tstate is NULL to restore the errno and chain the signal handler
if needed.
2012-08-01 19:36:36 +02:00
Charles-François Natali
55bce63ea0
Issue #14154 : Reimplement the bigmem test memory watchdog as a subprocess.
2012-03-24 10:06:23 +01:00
Victor Stinner
a2477208c8
Issue #13874 : read_null() of faulthandler uses volatile to avoid optimisation
...
Clang 3.0 removes "y = *x;" instruction if the optimisation level is 3.
2012-01-30 00:07:43 +01:00
Victor Stinner
1134b0dbbd
Fix _PyFaulthandler_Fini() so it can be called before _PyFaulthandler_Init()
2012-01-10 22:44:11 +01:00
Martin v. Löwis
bd928fef42
Rename _Py_identifier to _Py_IDENTIFIER.
2011-10-14 10:20:37 +02:00
Martin v. Löwis
afe55bba33
Add API for static strings, primarily good for identifiers.
...
Thanks to Konrad Schöbel and Jasper Schulz for helping with the mass-editing.
2011-10-09 10:38:36 +02:00
Antoine Pitrou
b244d075fb
Fix compilation error under Windows
2011-10-04 13:00:02 +02:00
Antoine Pitrou
75e78b6c77
Use the faulthandler module's infrastructure to write a GIL-less
...
memory watchdog for timely stats collection.
2011-10-04 11:51:23 +02:00
Victor Stinner
639418812f
Use the new Py_ARRAY_LENGTH macro
2011-09-29 00:42:28 +02:00
Victor Stinner
425fcd3045
Issue #12929 : faulthandler now uses char* for arithmetic on pointers
...
instead of void*
2011-09-07 16:18:56 +02:00
Victor Stinner
a9a9dab042
Issue #12550 : Add chain optional argument to faulthandler.register()
...
Call the previous signal handler if chain is True.
2011-07-13 23:39:53 +02:00
Victor Stinner
0aafa4f1e2
faulthandler: add missing include, pthread.h, for FreeBSD 6
2011-06-29 23:28:02 +02:00
Victor Stinner
25095b2be6
Remove useless assignments
...
Warnings found by the the Clang Static Analyzer.
2011-05-26 13:47:08 +02:00
Victor Stinner
9b49304790
Close #12153 : faulthandler, mark stack_overflow() as static
2011-05-23 12:29:10 +02:00
Victor Stinner
410dd7d357
Issue #12058 : Minor edits to comments in faulthandler
...
Patch written by Éric Araujo.
2011-05-11 20:56:08 +02:00
Victor Stinner
00bc6ccb78
faulthandler: improve_sigabrt() on Visual Studio
...
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.
2011-05-10 01:30:03 +02:00
Victor Stinner
e0c9a7533c
faulthandler: make quiet a gcc 4.6 warning (z was unused)
2011-05-09 14:44:26 +02:00
Victor Stinner
7bba62fd68
faulthandler: dump all threads by default
...
* 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.
2011-05-07 12:43:00 +02:00
Victor Stinner
c925617b54
faulthandler: save/restore errno in the two signal handlers
2011-05-07 12:20:11 +02:00
Victor Stinner
cf2a807831
faulthandler: don't use sigprocmask()
...
It has an undefined behaviour with threads, only use pthread_sigmask() if
it is available (and not broken).
2011-04-19 23:30:57 +02:00
Victor Stinner
a4de6d885f
Improve faulthandler.enable(all_threads=True)
...
faulthandler.enable(all_threads=True) dumps the tracebacks even if it is not
possible to get the state of the current thread
Create also the get_thread_state() subfunction to factorize the code.
2011-04-09 00:47:23 +02:00