summaryrefslogtreecommitdiffstats
path: root/Python/traceback.c
Commit message (Collapse)AuthorAgeFilesLines
* bpo-33029: Fix signatures of getter and setter functions. (GH-10746)Serhiy Storchaka2018-11-271-1/+2
| | | Fix also return type for few other functions (clear, releasebuffer).
* bpo-35081: Rename internal headers (GH-10275)Victor Stinner2018-11-121-1/+1
| | | | | | | | | | | | | | Rename Include/internal/ headers: * pycore_hash.h -> pycore_pyhash.h * pycore_lifecycle.h -> pycore_pylifecycle.h * pycore_mem.h -> pycore_pymem.h * pycore_state.h -> pycore_pystate.h Add missing headers to Makefile.pre.in and PCbuild: * pycore_condvar.h. * pycore_hamt.h * pycore_pyhash.h
* bpo-35081: Add pycore_ prefix to internal header files (GH-10263)Victor Stinner2018-10-311-1/+1
| | | | | | | | | | | | | | | | | | | | * Rename Include/internal/ header files: * pyatomic.h -> pycore_atomic.h * ceval.h -> pycore_ceval.h * condvar.h -> pycore_condvar.h * context.h -> pycore_context.h * pygetopt.h -> pycore_getopt.h * gil.h -> pycore_gil.h * hamt.h -> pycore_hamt.h * hash.h -> pycore_hash.h * mem.h -> pycore_mem.h * pystate.h -> pycore_state.h * warnings.h -> pycore_warnings.h * PCbuild project, Makefile.pre.in, Modules/Setup: add the Include/internal/ directory to the search paths of header files. * Update includes. For example, replace #include "internal/mem.h" with #include "pycore_mem.h".
* bpo-34588: Fix an off-by-one error in traceback formatting. (GH-9077)Benjamin Peterson2018-09-101-14/+16
| | | | | | | | The recursive frame pruning code always undercounted the number of elided frames by one. That is, in the "[Previous line repeated N more times]" message, N would always be one too few. Near the recursive pruning cutoff, one frame could be silently dropped. That situation is demonstrated in the OP of the bug report. The fix is to start the identical frame counter at 1.
* bpo-33012: Fix invalid function cast warnings with gcc 8 for METH_NOARGS. ↵Siddhesh Poyarekar2018-04-291-1/+1
| | | | | | | | | (GH-6030) METH_NOARGS functions need only a single argument but they are cast into a PyCFunction, which takes two arguments. This triggers an invalid function cast warning in gcc8 due to the argument mismatch. Fix this by adding a dummy unused argument.
* bpo-30579: Allow TracebackType creation and tb_next mutation from Python ↵Nathaniel J. Smith2018-01-071-26/+123
| | | | | | | | | | | | | | | | | (GH-4793) Third party projects may wish to hide their own internal machinery in order to present more comprehensible tracebacks to end users (e.g. Jinja2 and Trio both do this). Previously such projects have had to rely on ctypes to do so: https://github.com/pallets/jinja/blob/fe3dadacdf4cf411d0a5b6bbd4d5234697a28af2/jinja2/debug.py#L345 https://github.com/python-trio/trio/blob/1e86b1aee8c0c759f6f239ae53a05d0d3963c629/trio/_core/_multierror.py#L296 This provides a Python level API for creating and modifying real Traceback objects, allowing tracebacks to be edited at runtime. Patch by Nathaniel Smith.
* bpo-31949: Fixed several issues in printing tracebacks ↵Serhiy Storchaka2017-11-151-51/+51
| | | | | | | | | | | | (PyTraceBack_Print()). (#4289) * Setting sys.tracebacklimit to 0 or less now suppresses printing tracebacks. * Setting sys.tracebacklimit to None now causes using the default limit. * Setting sys.tracebacklimit to an integer larger than LONG_MAX now means using the limit LONG_MAX rather than the default limit. * Fixed integer overflows in the case of more than 2**31 traceback items on Windows. * Fixed output errors handling.
* bpo-25658: Implement PEP 539 for Thread Specific Storage (TSS) API (GH-1362)Masayuki Yamamoto2017-10-061-1/+1
| | | | | | | | | See PEP 539 for details. Highlights of changes: - Add Thread Specific Storage (TSS) API - Document the Thread Local Storage (TLS) API as deprecated - Update code that used TLS API to use TSS API
* bpo-30860: Consolidate stateful runtime globals. (#3397)Eric Snow2017-09-081-0/+1
| | | | | | | * group the (stateful) runtime globals into various topical structs * consolidate the topical structs under a single top-level _PyRuntimeState struct * add a check-c-globals.py script that helps identify runtime globals Other globals are excluded (see globals.txt and check-c-globals.py).
* bpo-31370: Remove support for threads-less builds (#3385)Antoine Pitrou2017-09-071-16/+0
| | | | | | * Remove Setup.config * Always define WITH_THREAD for compatibility.
* bpo-6532: Make the thread id an unsigned integer. (#781)Serhiy Storchaka2017-03-231-1/+1
| | | | | | | | | | | * bpo-6532: Make the thread id an unsigned integer. From C API side the type of results of PyThread_start_new_thread() and PyThread_get_thread_ident(), the id parameter of PyThreadState_SetAsyncExc(), and the thread_id field of PyThreadState changed from "long" to "unsigned long". * Restore a check in thread_get_ident().
* Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exceptionSerhiy Storchaka2016-10-181-20/+26
|\ | | | | | | loss in PyTraceBack_Here().
| * Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exceptionSerhiy Storchaka2016-10-181-20/+26
| | | | | | | | loss in PyTraceBack_Here().
* | Avoid calling functions with an empty string as format stringVictor Stinner2016-09-061-2/+2
| | | | | | | | Directly pass NULL rather than an empty string.
* | Fix reference leak in tb_printinternal()Victor Stinner2016-08-201-0/+2
| | | | | | | | Issue #26823.
* | Issue #26823: Abbreviate recursive tracebacksNick Coghlan2016-08-151-4/+32
| | | | | | | | | | | | | | | | Large sections of repeated lines in tracebacks are now abbreviated as "[Previous line repeated {count} more times]" by both the traceback module and the builtin traceback rendering. Patch by Emanuel Barry.
* | Issue #27336: Fix compilation failures --without-threadsBerker Peksag2016-06-171-1/+1
| |
* | Rework _Py_DumpASCII() to make Coverity happyVictor Stinner2016-03-231-8/+8
| |
* | Issue #23848: Expose _Py_DumpHexadecimal()Victor Stinner2016-03-231-8/+9
| | | | | | | | This function will be reused by faulthandler.
* | faulthandler now works in non-Python threadsVictor Stinner2016-03-161-2/+47
| | | | | | | | | | | | | | | | | | | | | | Issue #26563: * Add _PyGILState_GetInterpreterStateUnsafe() function: the single PyInterpreterState used by this process' GILState implementation. * Enhance _Py_DumpTracebackThreads() to retrieve the interpreter state from autoInterpreterState in last resort. The function now accepts NULL for interp and current_tstate parameters. * test_faulthandler: fix a ResourceWarning when test is interrupted by CTRL+c
* | Fix compilation error of traceback.c on WindowsVictor Stinner2016-03-161-3/+3
| | | | | | | | Issue #26564.
* | Enhance and rewrite traceback dump C functionsVictor Stinner2016-03-151-53/+56
|/ | | | | | | | | | | | | Issue #26564: * Expose _Py_DumpASCII() and _Py_DumpDecimal() in traceback.h * Change the type of the second _Py_DumpASCII() parameter from int to unsigned long * Rewrite _Py_DumpDecimal() and dump_hexadecimal() to write directly characters in the expected order, avoid the need of reversing the string. * dump_hexadecimal() limits width to the size of the buffer * _Py_DumpASCII() does nothing if the object is not a Unicode string * dump_frame() wrtites "???" as the line number if the line number is negative
* Issue #24436: Added const qualifiers for char* arguments of _PyTraceback_Add.Serhiy Storchaka2015-06-211-1/+1
|\ | | | | | | Patch by Michael Ensslin.
| * Issue #24436: Added const qualifiers for char* arguments of _PyTraceback_Add.Serhiy Storchaka2015-06-211-1/+1
| | | | | | | | Patch by Michael Ensslin.
* | Issue #23524: Replace _PyVerify_fd function with calls to ↵Steve Dower2015-04-121-0/+2
| | | | | | | | _set_thread_local_invalid_parameter_handler.
* | Issue #23836: Use _Py_write_noraise() to retry on EINTR in _Py_DumpTraceback()Victor Stinner2015-04-011-8/+20
| | | | | | | | | | and _Py_DumpTracebackThreads(). Document also these functions to explain that the caller is responsible to call PyErr_CheckSignals().
* | Merge 3.4 (traceback)Victor Stinner2015-03-251-1/+8
|\ \ | |/
| * Issue #23571: If io.TextIOWrapper constructor fails in _Py_DisplaySourceLine(),Victor Stinner2015-03-251-1/+8
| | | | | | | | close the binary file to fix a resource warning.
* | (Merge 3.4) Issue #22762: Fix _Py_DisplaySourceLine(), clear the exception ifVictor Stinner2014-10-301-0/+1
|\ \ | |/ | | | | PyFile_GetLine() failed. Patch written by Xavier de Gaye.
| * Issue #22762: Fix _Py_DisplaySourceLine(), clear the exception ifVictor Stinner2014-10-301-0/+1
| | | | | | | | PyFile_GetLine() failed. Patch written by Xavier de Gaye.
* | Issue #22462: Fix pyexpat's creation of a dummy frame to make it appear in ↵Antoine Pitrou2014-10-081-0/+33
|\ \ | |/ | | | | | | | | exception tracebacks. Initial patch by Mark Shannon.
| * Issue #22462: Fix pyexpat's creation of a dummy frame to make it appear in ↵Antoine Pitrou2014-10-081-0/+33
| | | | | | | | | | | | exception tracebacks. Initial patch by Mark Shannon.
* | faulthandler: enhance dump_ascii() to escape also non-printable ASCIIVictor Stinner2014-10-031-4/+5
| | | | | | | | characters (U+0000..U+001f and U+007f).
* | Issue #22156: Fix "comparison between signed and unsigned integers" compilerVictor Stinner2014-08-151-1/+1
|/ | | | warnings in the Python/ subdirectory.
* Fix _Py_DisplaySourceLine(), if PyTokenizer_FindEncodingFilename() fails, clearVictor Stinner2013-12-191-0/+2
| | | | the exception to not call open() with an exception set.
* Issue #19512, #19515: remove shared identifiers, move identifiers where theyVictor Stinner2013-11-071-5/+6
| | | | | | | are used. Move also _Py_IDENTIFIER() defintions to the top in modified files to remove identifiers duplicated in the same file.
* Issue #19512: add some common identifiers to only create common strings once,Victor Stinner2013-11-061-1/+1
| | | | | | | instead of creating temporary Unicode string objects Add also more identifiers in pythonrun.c to avoid temporary Unicode string objets for the interactive interpreter.
* Issue 19306: Add extra hints to faulthandler stack dumps that they are ↵Guido van Rossum2013-10-211-8/+8
| | | | upside down.
* merge 3.3Benjamin Peterson2013-07-211-1/+1
|\
| * fix spacingBenjamin Peterson2013-07-211-1/+1
| |
* | merge 3.3Benjamin Peterson2013-07-211-2/+2
|\ \ | |/
| * let's not return NULL from functions that should return intsBenjamin Peterson2013-07-211-2/+2
| |
* | Check return value of lseek() in _Py_DisplaySourceLine().Christian Heimes2013-07-211-1/+7
|\ \ | |/ | | | | | | Also use portable SEEK_SET instead of 0. CID 1040639
| * Check return value of lseek() in _Py_DisplaySourceLine().Christian Heimes2013-07-211-1/+7
| | | | | | | | | | Also use portable SEEK_SET instead of 0. CID 1040639
* | Check return value of PyObject_AsFileDescriptor() in _Py_DisplaySourceLine() ↵Christian Heimes2013-07-201-0/+5
|\ \ | |/ | | | | | | | | for error CID 486768
| * Check return value of PyObject_AsFileDescriptor() in _Py_DisplaySourceLine() ↵Christian Heimes2013-07-201-0/+5
| | | | | | | | | | | | for error CID 486768
* | Issue #18408: Fix _Py_DisplaySourceLine()Victor Stinner2013-07-151-1/+3
| | | | | | | | | | Report _Py_FindSourceFile() error, so the error is cleared; and clear io.open(filename) exception on failure.
* | Fix compilater warnings on Windows 64-bitVictor Stinner2013-05-161-1/+1
|/
* Issue #15463: the faulthandler module truncates strings to 500 characters,Victor Stinner2012-07-301-1/+1
| | | | instead of 100, to be able to display long file paths
* Issue #15365: Make traceback reporting ignore any errors when printing outKristján Valur Jónsson2012-07-191-1/+4
| | | | | the source line. Such errors can't be reported anyway. This makes error reporting work, even if the "io" module can't be loaded.