summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2011-03-30 23:31:06 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2011-03-30 23:31:06 (GMT)
commit024e37adccd9f0d879b014da28b02d04f0866f8c (patch)
tree9ca8e6548244610dd235876a87f639a1942647d4 /Include
parentd85456279f129e19a3f4c8ba0b3d05f5bdbfca1d (diff)
downloadcpython-024e37adccd9f0d879b014da28b02d04f0866f8c.zip
cpython-024e37adccd9f0d879b014da28b02d04f0866f8c.tar.gz
cpython-024e37adccd9f0d879b014da28b02d04f0866f8c.tar.bz2
Issue #11393: Add the new faulthandler module
Diffstat (limited to 'Include')
-rw-r--r--Include/traceback.h40
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