blob: 6501600c0cb2effd5de0213d189355b6a83dac57 [file] [log] [blame]
Guido van Rossumf70e43a1991-02-19 12:39:46 +00001
Fred Drake5eb6d4e2000-07-08 23:37:28 +00002#ifndef Py_TRACEBACK_H
3#define Py_TRACEBACK_H
4#ifdef __cplusplus
5extern "C" {
6#endif
7
Nicholas Bastina7604bf2004-03-21 18:37:23 +00008struct _frame;
9
Guido van Rossum3f5da241990-12-20 15:06:42 +000010/* Traceback interface */
11
Nicholas Bastina7604bf2004-03-21 18:37:23 +000012typedef 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;
Guido van Rossum66cb3111994-12-30 15:33:50 +000019
Mark Hammond91a681d2002-08-12 07:21:58 +000020PyAPI_FUNC(int) PyTraceBack_Here(struct _frame *);
21PyAPI_FUNC(int) PyTraceBack_Print(PyObject *, PyObject *);
Guido van Rossuma3309961993-07-28 09:05:47 +000022
Andrew M. Kuchling913b9072002-03-19 16:02:35 +000023/* Reveal traceback type so we can typecheck traceback objects */
Mark Hammond91a681d2002-08-12 07:21:58 +000024PyAPI_DATA(PyTypeObject) PyTraceBack_Type;
Guido van Rossum9d78d8d1995-09-18 21:29:36 +000025#define PyTraceBack_Check(v) ((v)->ob_type == &PyTraceBack_Type)
Guido van Rossum884afd61995-07-18 14:21:06 +000026
Guido van Rossuma3309961993-07-28 09:05:47 +000027#ifdef __cplusplus
28}
29#endif
30#endif /* !Py_TRACEBACK_H */