线程调用期间的BUS错误

时间:2015-10-19 07:56:39

标签: c++ multithreading arm cross-compiling bus-error

以下代码导致rasberry pi mod2系统上的Rasbian发行版出现总线错误。

#include <thread>
#include <iostream>

class bar {
public:
  void startFoo() {
   std::thread t(&bar::foo, this); //bus error because of this line
   t.join();
  }
  void foo() {
    std::cout << "hello from member function" << std::endl;
  }
};

int main()
{
  bar b;
  b.startFoo();
  return 0;
}

link表示当您的处理器甚至无法尝试请求的内存访问时,会发生总线错误。但在我的代码中,我在线程中访问类自己的成员函数。我无法解释它是如何导致总线错误的。有人可以澄清我吗?附:源代码在运行在x86 PC上的Ubuntu OS上交叉编译,二进制文件在Rasberry pi(ARM)上进行了测试。

0 个答案:

没有答案