我正在使用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分别是登录名和密码。
答案 0 :(得分:0)
ulimit -c
告诉当前最大核心尺寸,ulimit -c unlimited
将其设置为,无限制(您可能还想探索/etc/security/limits.conf
和您的环境,例如~/.bashrc
,就此而言)。
关于堆栈跟踪打印,有一个PyExcPrint扩展名,可以让你这样做。