Следующий код вызывает ошибку шины в дистрибутиве Rasbian в системе rasberry pi mod2.
#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;
}
это ссылка на сайт заявляет, что ошибка шины возникает, когда ваш процессор не может даже попытаться получить доступ к памяти. Но в моем коде я обращаюсь к собственной функции-члена класса в потоке. Я не могу объяснить, как это вызывает ошибку шины. Может ли кто-нибудь уточнить меня? Постскриптум Исходный код был кросс-скомпилирован на ОС Ubuntu, работающей на ПК с архитектурой x86, а двоичный файл был протестирован на Rasberry pi (ARM).
Задача ещё не решена.
Других решений пока нет …