Witam.
Takie coś:
struct X { virtual void run() { do_something(); }; void start() { run(); ); }
kod glowny:
X x;
x.run(); - dziala x.start(); - nie dziala
Anzalizujac kod krok po kroku w OpenOCD widze, że wolanie run() z wnetrza start() prowadzi prosto pod adres NULL. Tak jak gdyby tablica wirtualna była uszkodzona. Z drugiej strony jednak zawołanie wprost run(); działa. Wygląda więc na to że nie działa wołanie metod wirtualnych z innych metod.
arm-elf-g++ w wersji 3.4.3. RTTI włączone. Cpu AT91SAM7S.
Gdzie szukać przyczyny? Może ktoś już się z tym spotkał? Google pytane pod róznymi hasłami kręci się w okolicy EABI ale żadnych konkretów. Mogę podać wszystko włacznie z kawałkami asm, sam niestety słabo znam asm arm7 żeby zabrać się za analizę.