|  |  | 
|  | #ifndef Py_TRACEBACK_H | 
|  | #define Py_TRACEBACK_H | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | struct _frame; | 
|  |  | 
|  | /* Traceback interface */ | 
|  |  | 
|  | typedef struct _traceback { | 
|  | PyObject_HEAD | 
|  | struct _traceback *tb_next; | 
|  | struct _frame *tb_frame; | 
|  | int tb_lasti; | 
|  | int tb_lineno; | 
|  | } PyTracebackObject; | 
|  |  | 
|  | PyAPI_FUNC(int) PyTraceBack_Here(struct _frame *); | 
|  | PyAPI_FUNC(int) PyTraceBack_Print(PyObject *, PyObject *); | 
|  | PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, const char *, int, int); | 
|  |  | 
|  | /* Reveal traceback type so we can typecheck traceback objects */ | 
|  | PyAPI_DATA(PyTypeObject) PyTraceBack_Type; | 
|  | #define PyTraceBack_Check(v) (Py_TYPE(v) == &PyTraceBack_Type) | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  | #endif /* !Py_TRACEBACK_H */ |