blob: e7943dae9698016009c45f38c3cb510afefd093c [file] [log] [blame]
Andrew Hsieh83760d22013-06-18 12:24:28 -07001
2#ifndef Py_TRACEBACK_H
3#define Py_TRACEBACK_H
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8struct _frame;
9
10/* Traceback interface */
11
12typedef struct _traceback {
13 PyObject_HEAD
14 struct _traceback *tb_next;
15 struct _frame *tb_frame;
16 int tb_lasti;
17 int tb_lineno;
18} PyTracebackObject;
19
20PyAPI_FUNC(int) PyTraceBack_Here(struct _frame *);
21PyAPI_FUNC(int) PyTraceBack_Print(PyObject *, PyObject *);
22PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, const char *, int, int);
23
24/* Reveal traceback type so we can typecheck traceback objects */
25PyAPI_DATA(PyTypeObject) PyTraceBack_Type;
26#define PyTraceBack_Check(v) (Py_TYPE(v) == &PyTraceBack_Type)
27
28#ifdef __cplusplus
29}
30#endif
31#endif /* !Py_TRACEBACK_H */