[rtems-users] C++ Virtual Functions

Sergei Organov osv at topconrd.ru
Wed Feb 2 17:10:20 UTC 2005


"Smith, Gene" <Gene.Smith at siemens.com> writes:
> I am having some problems running code containing C++ virtual functions in
> rtems. When the code tries to branch to a virtual function address using
> "bctrl" instruction, the address (in ctr) is way out of range and results in
> a machine check exception.
> 
> Is there anything I need to do special in rtems for virtual functions to
> work? Is anyone using virtual functions, pure or impure, in rtems? I am
> still using rtems 4.6.1 and my ppc40x-derived bsp.

Besides what others have already suggested to check for, it could be the
case that you call a virtual member function of a static or global
object for which constructor hasn't been invoked (yet). In this case
virtual table pointer in the object isn't initialized. Global
constructors are invoked by special startup code so you need to check if
this code is linked in and executed. Check for .ctors section in the
executable as well.

-- 
Sergei.





More information about the users mailing list