我正在开发一个带有yocto发行版和python 2.7.3的variscite板.
我有时会从python解释器收到一条Bus错误消息.
我的程序在错误发生前至少几小时或几天正常运行.
但是当我得到它一次,当我尝试重新启动程序时,我直接得到它.
我必须在系统重新运行之前重新启动.
我的程序只使用串口,usb通信和一些tcp套接字.
我可以切换到另一个硬件并获得相同的问题.
我也用过python selftest
python -c“来自test import testall”
我得到这两个测试的错误
test_getattr (test.test_builtin.BuiltinTest) … ERROR test_nameprep
(test.test_codecs.NameprepTest) … ERROR
自我测试始终停止
test_callback_register_double (ctypes.test.test_callbacks.SampleCallbacksTestCase) … Segmentation
fault
但是当系统运行几个小时后,自我测试会在早些时候停止
ctypes.macholib.dyld
Bus error
我用memtester检查了RAM,似乎没问题.
我怎么能找到问题的原因?
解决方法:
总线错误通常是由试图访问硬件无法物理寻址的内存的应用程序引起的.在您的情况下,存在分段错误,其可能导致解除引用错误的指针或类似的东西,这导致访问实际上不可寻址的存储器地址.由于总线错误是次要症状,我首先从root开始导致分段错误.
标签:python,linux,embedded