#ifndef Py_INTERNAL_TRACEBACK_H #define Py_INTERNAL_TRACEBACK_H #ifdef __cplusplus extern "C" { #endif #ifndef Py_BUILD_CORE # error "this header requires Py_BUILD_CORE define" #endif // Export for '_ctypes' shared extension PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int, int *, PyObject **); // Export for 'pyexact' shared extension PyAPI_FUNC(void) _PyTraceback_Add(const char *, const char *, int); /* Write a Unicode object into the file descriptor fd. Encode the string to ASCII using the backslashreplace error handler. Do nothing if text is not a Unicode object. This function is signal safe. */ extern void _Py_DumpASCII(int fd, PyObject *text); /* Format an integer as decimal into the file descriptor fd. This function is signal safe. */ extern void _Py_DumpDecimal( int fd, size_t value); /* Format an integer as hexadecimal with width digits into fd file descriptor. The function is signal safe. */ extern void _Py_DumpHexadecimal( int fd, uintptr_t value, Py_ssize_t width); // Exported for external JIT support PyAPI_FUNC(PyObject *) _PyTraceBack_FromFrame( PyObject *tb_next, PyFrameObject *frame); #define EXCEPTION_TB_HEADER "Traceback (most recent call last):\n" #define EXCEPTION_GROUP_TB_HEADER "Exception Group Traceback (most recent call last):\n" /* Write the traceback tb to file f. Prefix each line with indent spaces followed by the margin (if it is not NULL). */ extern int _PyTraceBack_Print( PyObject *tb, const char *header, PyObject *f); extern int _Py_WriteIndentedMargin(int, const char*, PyObject *); extern int _Py_WriteIndent(int, PyObject *); // Export for the faulthandler module PyAPI_FUNC(void) _Py_InitDumpStack(void); PyAPI_FUNC(void) _Py_DumpStack(int fd); extern void _Py_DumpTraceback_Init(void); #ifdef __cplusplus } #endif #endif /* !Py_INTERNAL_TRACEBACK_H */