我正在尝试调试通过Xcode(7-beta)编写的c代码动态库,并且该库被封装为Python(2.7.3)模块。 Swig(v3.0.5 - > http://www.swig.org/)用于执行绑定,Xcode用于编译和生成库。这一切都运行良好。 Python通过PyCharm(CE 4.5.3)运行。
为了调试库,我进行调试构建,从PyCharm启动模块,转到Xcode,菜单“debug-> attach to process-> Python”附加到进程,它就像一个魅力,程序员的梦想(差不多)。达到断点,读取变量等
所以这就是问题所在:
当C代码在断点处被正确停止时,PyCharm中的运行脚本已完成(退出代码为0),就好像它已经自然地到达了它的端点一样。这是一个简单的问题再现的情况:
C代码(动态库):
int TestIt(){
return 42;
}
虽然Python代码基本上是:
import time
import my_c_dinamiclib
for i in range(60):
print i, my_c_dynamiclib.TestIt()
time.sleep(1)
所以有60秒的时间来附加到这个过程。
有谁知道如何处理这个问题?我已经尝试在调试模式下运行Python,但没有成功。