Я хочу разработать приложение для MIPS
на основе embedded device
. Я использую mipsel-elf-g++
кросс-компилятор. Я реализую простой код, как показано ниже.
class A {
public:
virtual int getValue();
}
class B : public A {
public:
virtual int getValue();
}
int A::getValue() {
return 1;
}
int B::getValue() {
return 2;
}
int main() {
A a1;
B b1;
A* a2 = &a1;
B* b2 = &b1;
int a_val_1 = a1.getValue();
int b_val_1 = b1.getValue();
int a_val_2 = a2->getValue();
int b_val_2 = b2->getValue();
return 0;
}
a1.getValue()
и b1.getValue()
строк работают успешно, но когда каждая из a2->getValue()
или b2->getValue()
строк выполнена, я вижу сообщение segment fault
на экране. Я думаю, что одна из ОС, компилятора или библиотеки может быть повреждена. Я не знаю, как я могу найти проблему.
что не так?