我正在将c库集成到python应用程序中。
我需要将一个变量列表从python大小传递给C lib的包装器(我正在调用)只是为了理解,我写了一个小程序:
在python应用程序中加载共享库后。
在Python方面:
c_args = [5,6]
PyPrintVal(c_args)
在C方面:
PyPrintVal(PyObject *c_args)
{
int i=0;
int j=0;
printf("In eINoiseRemoval\n");
if (!PyArg_ParseTuple(c_args, "ii", &i,&j))
{ fprintf(stderr, "error in parsing\n");
return -1;
}
printf(i1=%d j=%d\n, i,j)
}
然后我得到分段错误?还剩下什么吗? 因为我正在寻找http://docs.python.org/2/extending/extending.html#a-simple-example
但没有得到任何答案。 感谢
答案 0 :(得分:1)
您可以使用gdb
找出此段错误的确切位置:
$ gdb python
......
> set args my_python_script.py
> run
.......
Segmentation Fault
> where
这将为您提供堆栈跟踪并指出segfault的确切位置。