diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-03-30 23:31:06 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-03-30 23:31:06 (GMT) |
commit | 024e37adccd9f0d879b014da28b02d04f0866f8c (patch) | |
tree | 9ca8e6548244610dd235876a87f639a1942647d4 /Include/traceback.h | |
parent | d85456279f129e19a3f4c8ba0b3d05f5bdbfca1d (diff) | |
download | cpython-024e37adccd9f0d879b014da28b02d04f0866f8c.zip cpython-024e37adccd9f0d879b014da28b02d04f0866f8c.tar.gz cpython-024e37adccd9f0d879b014da28b02d04f0866f8c.tar.bz2 |
Issue #11393: Add the new faulthandler module
Diffstat (limited to 'Include/traceback.h')
-rw-r--r-- | Include/traceback.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Include/traceback.h b/Include/traceback.h index 69e3d05..9a8f2a6 100644 --- a/Include/traceback.h +++ b/Include/traceback.h @@ -5,6 +5,8 @@ extern "C" { #endif +#include "pystate.h" + struct _frame; /* Traceback interface */ @@ -28,6 +30,44 @@ PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int); PyAPI_DATA(PyTypeObject) PyTraceBack_Type; #define PyTraceBack_Check(v) (Py_TYPE(v) == &PyTraceBack_Type) +/* Write the Python traceback into the file 'fd'. For example: + + Traceback (most recent call first): + File "xxx", line xxx in <xxx> + File "xxx", line xxx in <xxx> + ... + File "xxx", line xxx in <xxx> + + Return 0 on success, -1 on error. + + This function is written for debug purpose only, to dump the traceback in + the worst case: after a segmentation fault, at fatal error, etc. That's why, + it is very limited. Strings are truncated to 100 characters and encoded to + ASCII with backslashreplace. It doesn't write the source code, only the + function name, filename and line number of each frame. Write only the first + 100 frames: if the traceback is truncated, write the line " ...". + + This function is signal safe. */ + +PyAPI_DATA(int) _Py_DumpTraceback( + int fd, + PyThreadState *tstate); + +/* Write the traceback of all threads into the file 'fd'. current_thread can be + NULL. Return NULL on success, or an error message on error. + + This function is written for debug purpose only. It calls + _Py_DumpTraceback() for each thread, and so has the same limitations. It + only write the traceback of the first 100 threads: write "..." if there are + more threads. + + This function is signal safe. */ + +PyAPI_DATA(const char*) _Py_DumpTracebackThreads( + int fd, PyInterpreterState *interp, + PyThreadState *current_thread); + + #ifdef __cplusplus } #endif |