我使用2.7教程中建议的方法从C扩展调用Python模块中的函数。以下是我在C扩展中的代码:
result = PyObject_CallObject(pFailureFormatFn, failureObj);
if (result)
{ // We got a good result from the function
if (PyArg_ParseTuple(result, "OO", &resultDict, &resultString))
{ // Decode success
< snip >
Py_DECREF(resultDict);
Py_DECREF(resultString);
}
Py_DECREF(result);
}
else
{ // Bad result from the function
logEvent("The call to pFailureFormatFn returned a NULL result");
PyErr_Clear();
}
我发现这个调用对于许多调用都返回了很好的结果,然后它开始对所有调用返回NULL,直到程序退出。在Python域中被调用的函数(称为funcA)调用另一个递归调用自身的函数(称为funcB)。我已经确定问题发生在funcB中
我的问题是如何找出funcB中的问题是什么?我用gdb来运行这个程序,里面没有什么不好的事情发生。也就是说,返回空结果并继续执行。我想找出是什么导致了空返回(我能看到Python堆栈跟踪吗?)
目前没有回答
相关问题 更多 >
编程相关推荐