Python-Ctypes CFUNCTYPE在ARM设备中崩溃

时间:2018-11-21 16:37:11

标签: python callback crash ctypes buildroot

我正在尝试注册一个使用Ctypes从我的C代码中调用的python回调。在我的计算机上一切正常,但是当代码在ARM设备中运行时python崩溃。 在我的计算机上,我使用的是python 3.6.6,而此ARM设备使用的是python 3.6.3。我正在使用buildroot生成图像。

好吧,经过一些测试,似乎该问题与CFUNCTYPE有关。 以下代码仅测试CFUNCTYPE,它在我的计算机上运行,​​但在ARM设备上崩溃(分段错误):

    from ctypes import *

    def func():
        print("func called")

    CALLBACK = CFUNCTYPE(None)

    callback = CALLBACK(func)

    print("Calling callback")
    callback()

    print("Done!")

我的计算机中的结果是:

Calling callback
func called
Done!

在ARM设备中的结果是:

Calling callback
Segmentation fault

这是CFUNCTYPE中的错误吗?还是我需要做些不同的事情?我在此设备上运行了很多python代码,除此CFUNCTYPE之外,其他所有程序都运行正常。

谢谢

0 个答案:

没有答案