PyType_IsSubtype 的分段错误
Segmentation fault with PyType_IsSubtype
在 gdb 中调试 C 扩展时出现以下错误
Program received signal SIGSEGV, Segmentation fault.
PyType_IsSubtype (a=0xc0089ca71d1afbb6, b=0x7fffed5441e0) at Objects/typeobject.c:1150
1150 Objects/typeobject.c: No such file or directory.
in Objects/typeobject.c
到目前为止,我所发现的只是关于 Debian 6 中 Python 3.4 的错误报告。
使用:Python 2.7.6/CentOS 6.6
我解决了。在我的 C 扩展代码中,我创建了一些对象:
PyArrayObject *py_u2r, *py_u2l, *py_u2s;
py_u2r= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE);
py_u2l= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE);
py_u2s= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE);
唯一的问题是我没有 return 正确地处理它们。所以,我刚刚添加了以下 return 行,它现在正在运行:
return Py_BuildValue("OOO", py_u2r, py_u2l, py_u2s);
在这个 link 中,我了解了 Py_BuildValue
语法,这非常简单。
在 gdb 中调试 C 扩展时出现以下错误
Program received signal SIGSEGV, Segmentation fault.
PyType_IsSubtype (a=0xc0089ca71d1afbb6, b=0x7fffed5441e0) at Objects/typeobject.c:1150
1150 Objects/typeobject.c: No such file or directory.
in Objects/typeobject.c
到目前为止,我所发现的只是关于 Debian 6 中 Python 3.4 的错误报告。
使用:Python 2.7.6/CentOS 6.6
我解决了。在我的 C 扩展代码中,我创建了一些对象:
PyArrayObject *py_u2r, *py_u2l, *py_u2s;
py_u2r= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE);
py_u2l= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE);
py_u2s= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE);
唯一的问题是我没有 return 正确地处理它们。所以,我刚刚添加了以下 return 行,它现在正在运行:
return Py_BuildValue("OOO", py_u2r, py_u2l, py_u2s);
在这个 link 中,我了解了 Py_BuildValue
语法,这非常简单。