调试.so文件中发生的Python分段错误

时间:2016-08-23 21:33:42

标签: python debugging segmentation-fault ctypes traceback

我正在使用Ctypes访问共享对象库时遇到错误,代码如下。奇怪的是它发生在罕见的场合。我能够使用API​​大部分时间,但在某些情况下会产生seg错误。

因为它不经常发生,所以我不想使用gdb来获取引用,因为我需要运行它很多次。有没有办法在python中打印引用或执行核心转储,以便我可以调试此错误?我怎么能找出问题所在呢?

client_login = _clientmod.client_login

client_login.argtypes = [ ctypes.c_void_p,
                          ctypes.c_int,
                          ctypes.c_uint ]

client_login.restype = ctypes.c_int

c_void_p是接口的句柄。

c_int和c_uint分别是登录名和密码。

1 个答案:

答案 0 :(得分:0)

ulimit -c告诉当前最大核心尺寸,ulimit -c unlimited将其设置为,无限制(您可能还想探索/etc/security/limits.conf和您的环境,例如~/.bashrc,就此而言)。

关于堆栈跟踪打印,有一个PyExcPrint扩展名,可以让你这样做。