python27_sys/
traceback.rs

1use 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}