The following code causes bus error in Rasbian distro on a rasberry pi mod2 system.
#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;
}
This link states that bus error occurs when your processor cannot even attempt the memory access requested. But in my code i am accessing the class own member function in thread. I cannot relate how it is causing bus error. Could someone clarify me? P.S. The source code was cross compiled on a Ubuntu OS running on a x86 PC and the binary was tested on Rasberry pi (ARM).
 
    