【问题标题】:Debugging Python Segmentation Fault occurring in .so file调试 .so 文件中发生的 Python 分段错误
【发布时间】:2016-08-23 21:33:41
【问题描述】:

我目前在使用 Ctypes 访问共享对象库时遇到了一个错误,代码如下。奇怪的是它很少发生。我大部分时间都可以使用 API,但在某些情况下它会产生段错误。

因为它不经常发生,所以我不想使用 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 分别是登录名和密码。

【问题讨论】:

    标签: python debugging segmentation-fault ctypes traceback


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-04-14
      • 2012-07-06
      • 2013-05-19
      • 2019-12-13
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      相关资源
      最近更新 更多