python27_sys/
traceback.rs1use libc::c_int;
2
3use crate::frameobject::PyFrameObject;
4use crate::object::*;
5use crate::pyport::Py_ssize_t;
6
7#[repr(C)]
8#[derive(Copy, Clone)]
9pub struct PyTracebackObject {
10 #[cfg(py_sys_config = "Py_TRACE_REFS")]
11 pub _ob_next: *mut PyObject,
12 #[cfg(py_sys_config = "Py_TRACE_REFS")]
13 pub _ob_prev: *mut PyObject,
14 pub ob_refcnt: Py_ssize_t,
15 pub ob_type: *mut PyTypeObject,
16 pub tb_next: *mut PyTracebackObject,
17 pub tb_frame: *mut PyFrameObject,
18 pub tb_lasti: c_int,
19 pub tb_lineno: c_int,
20}
21
22#[cfg_attr(windows, link(name = "pythonXY"))]
23extern "C" {
24 pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> c_int;
25 pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> c_int;
26
27 pub static mut PyTraceBack_Type: PyTypeObject;
28}
29
30#[inline(always)]
31pub unsafe fn PyTraceBack_Check(op: *mut PyObject) -> c_int {
32 (Py_TYPE(op) == &mut PyTraceBack_Type) as c_int
33}