如何确定“总线错误”的原因

jeb*_*jeb 6 python linux embedded

我正在使用带有yocto发行版和python 2.7.3的方板。

有时我从python解释器收到一条总线错误消息。
我的程序至少在错误发生前几个小时或几天就可以正常运行。
但是,一旦我得到它,当我尝试重新启动程序时,我就直接得到它。
我必须重新引导,然后系统才能再次工作。

我的程序仅使用一个串行端口,一点USB通信和一些tcp套接字。

我可以切换到其他硬件,并遇到相同的问题。

我还使用了python selftest
python -c "from test import testall"

我在这两个测试中出错

test_getattr(test.test_builtin.BuiltinTest)...错误test_nameprep(test.test_codecs.NameprepTest)...错误

自检总是在

test_callback_register_double(ctypes.test.test_callbacks.SampleCallbacksTestCase)...分段错误

但是,当系统运行几个小时后,自检会在更早的时候停止

ctypes.macholib.dyld总线错误

我在中期检查了RAM,看来还可以。
我如何找到问题的原因?

Kam*_*uri 7

总线错误通常是由应用程序试图访问硬件无法物理寻址的内存引起的。在您的情况下,存在分段错误,这可能会导致取消引用错误的指针或类似的东西,从而导致访问物理上不可寻址的内存地址。我首先从根源开始,因为总线错误是次要症状。